乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 67|回复: 3

求助,程序运行速度慢,求帮助改进

[复制链接]

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2011-10-12 11:02:00 | 显示全部楼层 |阅读模式
说明:利用cad宏提取水深数据(x,y,h),程序可以运行,能提取出数据,但是运行时间长,直接卡死,需用任务管理器退出,无法确认什么时候运行结束,各位高手帮帮忙
        程序从当前视图提取水深,结果保存在d盘mmm.xis中
回复

使用道具 举报

13

主题

113

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
166
发表于 2011-10-12 21:01:00 | 显示全部楼层
给你个建议,不用Excel,可以存成固定格式的文本文件,使用文件时,用Excel打开。或者用Excel打开后,再存成xls格式的.
回复

使用道具 举报

5

主题

28

帖子

5

银币

初来乍到

Rank: 1

铜币
48
发表于 2011-12-21 13:07:00 | 显示全部楼层
直接保存为CSV文件比较方便而且速度很快,坐标数数据用逗号分隔开,Excel可以直接打开CSV文件,你程序中是不停地在CAD与Excel中间传递数据,这个过程是很耗时的哦。
回复

使用道具 举报

3

主题

58

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2012-4-17 11:39:00 | 显示全部楼层
For Each obj_text In selectionset
For i = 0 To itemcount - 1
    Set obj_text = selectionset.Item(i)
   wksheet.Cells(i + 1, 1).Value = obj_text.insertionPoint(0)
   wksheet.Cells(i + 1, 2).Value = obj_text.insertionPoint(1)
   wksheet.Cells(i + 1, 3).Value = obj_text.textString
Next i
Next obj_text
就上面这段程序,个人认为有点问题,循环被多循环了itemcount-1次,其实只要如下就行了
Dim obj_text As AcadText
For i = 0 To itemcount - 1
    Set obj_text = selectionset.Item(i)
   wksheet.Cells(i + 1, 1).Value = obj_text.insertionPoint(0)
   wksheet.Cells(i + 1, 2).Value = obj_text.insertionPoint(1)
   wksheet.Cells(i + 1, 3).Value = obj_text.textString
Next
我想这样就快多了,你为什么不用数据的方式呢,那样会更快的。先写入数据库,完了后用代码整体写入EXCEL中多好
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-30 09:00 , Processed in 1.803531 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表