乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 1

Loopy Loop发送给我Loopy。。

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-12-11 05:05:17 | 显示全部楼层 |阅读模式
您好,
有人能看看这段代码并找出它工作不正常的原因吗?
基本上,这是我编写的主程序的一小部分,用于修改向上的图形,这一部分将标题栏重置回默认设置。主窗体有一个显示布局的列表框,因此用户可以选择需要修改或重置的布局。下面例程中唯一选定部分的代码工作正常(单击msgbox中的“否”),但“是”选项(所有布局)将只执行当前布局,而不会循环所有布局,正如它所设想的那样,ResetTitleBlocks子例程只是循环遍历标题栏的属性并将其更改为默认值。所讨论的代码是红色的。顺便说一句,layoutZ是dim'd作为ACAD布局
  1. ' DELETE REVISION DETAILS..
  2. Private Sub cmdDELETEREVISIONS_Click()
  3. 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..")
  4.     If response = vbCancel Then
  5.         Exit Sub
  6.     End If
  7.     If response = vbNo Then
  8.     ' Loop through the selected layouts..
  9.     For Cx = LBound(SelectedLayouts) + 1 To UBound(SelectedLayouts)
  10.         ThisDrawing.ActiveLayout = ThisDrawing.Layouts(SelectedLayouts(Cx))
  11.         ResetTitleBlocks
  12.     Next Cx
  13.     GoTo RESETEND
  14. [color=red]ElseIf response = vbYes Then
  15.     For Each layoutZ In ThisDrawing.Layouts
  16.         ResetTitleBlocks
  17.     Next layoutZ[/color]
  18.     GoTo RESETEND
  19. End If
  20. RESETEND:
  21. Unload Me
  22. End Sub

有什么想法为什么它没有在所有的图纸中循环#039;s布局

回复

使用道具 举报

0

主题

8

帖子

4

银币

初来乍到

Rank: 1

铜币
9
发表于 2008-12-11 08:16:42 | 显示全部楼层
本人'd怀疑这与您没有将布局设置为当前布局有关…
您还可以这样使代码更友好一些:
  1. Private Sub cmdDELETEREVISIONS_Click()
  2.   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..")
  3.   Select Case response
  4.   Case vbCancel
  5.     Exit Sub
  6.   Case vbNo
  7.     ' Loop through the selected layouts..
  8.     For Cx = LBound(SelectedLayouts) + 1 To UBound(SelectedLayouts)
  9.       ThisDrawing.ActiveLayout = ThisDrawing.Layouts(SelectedLayouts(Cx))
  10.       ResetTitleBlocks
  11.     Next Cx
  12.   Case vbYes
  13.     For Each layoutZ In ThisDrawing.Layouts
  14.       ThisDrawing.ActiveLayout = layoutZ
  15.       ResetTitleBlocks
  16.     Next layoutZ
  17.   End Select
  18.   Unload Me
  19. End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 17:45 , Processed in 0.499309 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表