明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1967|回复: 3

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-10-12 21:01:01 | 显示全部楼层
给你个建议,不用Excel,可以存成固定格式的文本文件,使用文件时,用Excel打开。或者用Excel打开后,再存成xls格式的.
发表于 2011-12-21 13:07:51 | 显示全部楼层
直接保存为CSV文件比较方便而且速度很快,坐标数数据用逗号分隔开,Excel可以直接打开CSV文件,你程序中是不停地在CAD与Excel中间传递数据,这个过程是很耗时的哦。
发表于 2012-4-17 11:39:04 | 显示全部楼层
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中多好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:23 , Processed in 0.226046 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表