> Fatty
А почему нет? Так даже получается лучше структурированный код, и можно использовать свои заготовки:
Sub GetAllBlocks()
- - - - - - - - - - - - - - -
For i = 1 To countColl.Count
oSset.Clear
Set oSset = GetSelSet(countColl(i))'а что с ними делать дальше не ясно...
Next i
End Sub
Private Function GetSelSet(bName As String) As AcadSelectionSet
Dim objSelSet As AcadSelectionSet
Dim intDXF(3) As Integer
Dim varVal(3) As Variant
On Error Resume Next
ThisDrawing.SelectionSets("Test_Sel").Delete
Set objSelSet = ThisDrawing.SelectionSets.Add("Test_Sel")
Dim intType(0 To 3) As Integer
Dim varData(0 To 3) As Variant
intType(0) = -4: varData(0) = "<AND"
intType(1) = 0: varData(1) = "INSERT"
intType(2) = 2: varData(2) = bName
intType(3) = -4: varData(3) = "AND>"
objSelSet.Select acSelectionSetAll, Filtertype:=intType, filterdata:=varData
Set GetSelSet = objSelSet
Set objSelSet = Nothing
End Function
Давай спросим Сашу, что ему больше понравилось?
А если серьезно, то я не собирался решать полностью задачу (которую Саша обрисовал прямо скажем не очень...), а просто поделился приемом, чтобы показать что в данном случае можно обойтись без явного сравнения строк -
If StrComp(oBlkRef.Name, bName, vbTextCompare) = 0 Then
VBA сделает это за нас.