我采用VB对CAD选择集遍历操作,但时速度超级慢。 而在VBA下面直接操作速度很快。 同样的操作,为啥速度差这么多呢? vb中主要相关代码如下: Set SSet = AcadDoc.SelectionSets.Add("Example") Dim FilterType(0 To 3) As Integer Dim FilterData(0 To 3) As Variant FilterType(0) = -4 FilterData(0) = "<or" FilterType(1) = 0 FilterData(1) = "LINE" FilterType(2) = 0 FilterData(2) = "LWPOLYLINE" FilterType(3) = -4 FilterData(3) = "or>" SSet.Select acSelectionSetAll, , , FilterType, FilterData For Each element In SSet If (SSet.Item(j).Length <= 200) And (SSet.Item(j).Length >=170) Then ''''这里是随便处理语句 End If Next 在vba中相同的代码(AcadDoc改成ThisDrawing) 当SSET选择集被筛选出来的结果数量达到几百个时,VB中速度慢得让人难以忍受,而VBA中速度相当快。 各位大侠,帮我分析一下,是不是我的思路不对?难道在VB中处理选择集本来就很慢? 真是郁闷啊!!! |