Keith™ 发表于 2008-12-11 05:05:17

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布局

双河农场 发表于 2008-12-11 08:16:42

本人'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]
查看完整版本: Loopy Loop发送给我Loopy。。