乐筑天下

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

大逃亡..

[复制链接]

46

主题

118

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2008-12-9 10:49:11 | 显示全部楼层 |阅读模式
嗨,
有没有什么方法可以对程序进行编码,以便用户可以从正在运行的vba程序中逃脱出来?
我为我们的办公室创建了一套cad工具,经理们的一些评论是,如果您不小心单击go或错误地填写信息并单击go,则无法逃脱程序。有没有办法添加此功能,同时保持绘图中的所有内容不变,以便绘图恢复到程序运行前的状态?
有什么想法吗?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2008-12-9 11:00:16 | 显示全部楼层
在例程开始时设置一个撤销标记怎么样?如果需要,用户可以
使用撤消命令。
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-12-9 11:17:30 | 显示全部楼层
我想,首先...你的程序做了什么(简而言之)?
回复

使用道具 举报

46

主题

118

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
291
发表于 2008-12-9 11:26:38 | 显示全部楼层
有许多不同的,但举例来说,其中一个绘图所有选定的布局,使用保存的绘图设置在每个布局。它有点原始,但还没有时间整理出正确的编码,但基本上它循环通过每个布局,并使用and命令来绘制布局..
当然,有时这可能需要很长时间,用户可能会在列表中单击错误的布局,或者忘记一两个布局,或者只是不小心单击了按钮,所以退出选项会很好,而不仅仅是在程序完成后撤消,这是我在某些其他程序中需要的,但不是这个程序..
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-12-9 11:34:19 | 显示全部楼层
*GASP* SendCommand?? 要策划??
为了羞耻!!!
由于您正在循环浏览布局,一遍又一遍地执行相同的代码,因此我想您可以显示一个带有取消按钮的窗体。 你可以有一个全局变量,用于指示用户是否按下了取消按钮 - 也许是一个布尔值? 在每个循环的开头,检查全局变量的 True/False 值。 如果用户按下取消按钮,变量将设置,程序将相应地响应。
有什么意义吗?
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-12-9 12:13:05 | 显示全部楼层
两个字给你你提到的功能...
酒吧
lish
你可能会给这样的东西一个机会。 出于演示目的,我将其与采样计时器一起弹出。
  1. Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  2. Public Const VK_ESCAPE = &H1B
  3. Sub Test()
  4. Dim intCnt As Integer
  5. Dim PauseTime, Start, Finish, TotalTime
  6. GetAsyncKeyState VK_ESCAPE
  7. For intCnt = 1 To 10
  8. If (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then
  9.     PauseTime = 5    ' Set duration.
  10.     Start = Timer    ' Set start time.
  11.     Do While Timer < Start + PauseTime
  12.         DoEvents    ' Yield to other processes.
  13.         If GetAsyncKeyState(VK_ESCAPE) Then
  14.          Exit For
  15.         End If
  16.    
  17.     Loop
  18.     Finish = Timer    ' Set end time.
  19.     TotalTime = Finish - Start    ' Calculate total time.
  20.     MsgBox "Paused for " & TotalTime & " seconds"
  21. Else
  22.     End
  23. End If
  24. Next intCnt
  25. End Sub

回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-12-9 12:14:52 | 显示全部楼层

真达特!
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-12-10 00:31:33 | 显示全部楼层
我使用printalllayouts函数而不是publish,因为我喜欢它胜过publish。
我从来没有想过一个转义序列,它可以方便地用于20种布局。你能中途停止发布命令吗?
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2008-12-10 08:18:22 | 显示全部楼层
耶!
回复

使用道具 举报

7

主题

42

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2008-12-10 09:53:54 | 显示全部楼层
哦也许一个无模式的表单可以做到这一点,我没有弄乱它们。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 16:44 , Processed in 1.032146 second(s), 72 queries .

© 2020-2025 乐筑天下

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