Loopy Loop发送给我Loopy。。
您好,有人能看看这段代码并找出它工作不正常的原因吗?
基本上,这是我编写的主程序的一小部分,用于修改向上的图形,这一部分将标题栏重置回默认设置。主窗体有一个显示布局的列表框,因此用户可以选择需要修改或重置的布局。下面例程中唯一选定部分的代码工作正常(单击msgbox中的“否”),但“是”选项(所有布局)将只执行当前布局,而不会循环所有布局,正如它所设想的那样,ResetTitleBlocks子例程只是循环遍历标题栏的属性并将其更改为默认值。所讨论的代码是红色的。顺便说一句,layoutZ是dim';d作为ACAD布局' DELETE REVISION DETAILS..
Private Sub cmdDELETEREVISIONS_Click()
response = MsgBox("Would you like to reset ALL titleblocks or just the selected ones?.." & vbCr & vbCr & "Click Yes to reset ALL layouts or click No to reset only selected layouts..", vbYesNoCancel, "Revision Details Editor..")
If response = vbCancel Then
Exit Sub
End If
If response = vbNo Then
' Loop through the selected layouts..
For Cx = LBound(SelectedLayouts) + 1 To UBound(SelectedLayouts)
ThisDrawing.ActiveLayout = ThisDrawing.Layouts(SelectedLayouts(Cx))
ResetTitleBlocks
Next Cx
GoTo RESETEND
ElseIf response = vbYes Then
For Each layoutZ In ThisDrawing.Layouts
ResetTitleBlocks
Next layoutZ
GoTo RESETEND
End If
RESETEND:
Unload Me
End Sub
有什么想法为什么它没有在所有的图纸中循环#039;s布局
本人';d怀疑这与您没有将布局设置为当前布局有关…
您还可以这样使代码更友好一些:
Private Sub cmdDELETEREVISIONS_Click()
response = MsgBox("Would you like to reset ALL titleblocks or just the selected ones?.." & vbCr & vbCr & "Click Yes to reset ALL layouts or click No to reset only selected layouts..", vbYesNoCancel, "Revision Details Editor..")
Select Case response
Case vbCancel
Exit Sub
Case vbNo
' Loop through the selected layouts..
For Cx = LBound(SelectedLayouts) + 1 To UBound(SelectedLayouts)
ThisDrawing.ActiveLayout = ThisDrawing.Layouts(SelectedLayouts(Cx))
ResetTitleBlocks
Next Cx
Case vbYes
For Each layoutZ In ThisDrawing.Layouts
ThisDrawing.ActiveLayout = layoutZ
ResetTitleBlocks
Next layoutZ
End Select
Unload Me
End Sub
页:
[1]