怎样加快VBA的运行速度???????
今天写了一程序,是查找图中的扩展数据的,第一次运行很快就查找出来了,后面多运行几次以后,查找所花的时间就越来越长,请大家帮我看看是怎么回事???原代码如下:Option Explicit
Sub djfind()
On Error Resume Next
'On Error GoTo err
Dim zdh As String
Dim Xdatatype As Integer
Dim Xdatavalue As Variant
Dim lsset As AcadSelectionSet
Dim entity As AcadEntity
Dim i As Integer
'If ThisDrawing.SelectionSets.Count > 0 Then
' For i = 0 To ThisDrawing.SelectionSets.Count - 1
' ThisDrawing.SelectionSets.Item(i).Clear
' ThisDrawing.SelectionSets.Item(i).Delete
' Next
'End If
Dim Fdata(1) As Variant
Dim Ftype(1) As Integer
Ftype(0) = 0
Fdata(0) = "Line"
Ftype(1) = 39
Fdata(1) = 1500088
Set lsset = ThisDrawing.SelectionSets.Add("lsset")
lsset.Select acSelectionSetAll, , , Ftype, Fdata
zdh = ThisDrawing.Utility.GetString(1, vbCr & "输入宗地号:")
Dim lspnt As Variant
Dim lepnt As Variant
For Each entity In lsset
entity.GetXData "", Xdatatype, Xdatavalue
Select Case Xdatavalue(4)
Case zdh
lspnt = entity.StartPoint
lepnt = entity.EndPoint
MsgBox "找到"
ThisDrawing.Application.ZoomWindow lspnt, lepnt
lsset.Clear
lsset.Delete
Exit Sub
End Select
Next
End Sub 再给个图吧 图太大了,可能传不上来,我就是想问问,VBA程序会不会随着运行次数的增多,运行时间就回逐渐加班加长?
我的图有20M左右,所以传不上来! 每次选择集的图元的顺序可能会有不同,你可以在程序中用累加,并在找到所需要图元时把累加数显示出来看看每次运行程序时该数是否相同。如果顺序不同,则因为你是对选择集中的对象进行遍历查找,所以程序循环的次数会有不同,速度也会有变化。 原来是这样,谢谢!我再去试一下!
页:
[1]