大逃亡。。
您好,有没有办法对程序进行编码,以便用户可以退出正在运行的vba程序
我为我们的办公室创建了一套cad工具,经理们的一些评论是,如果你不小心单击“转到”或错误地填写信息并单击“转到”,则无法逃脱程序。有没有办法添加此功能,同时保持图形中的所有内容完好无损,以便将图形恢复到程序运行前的状态
有什么想法吗?
在例程启动时设置一个撤销标记怎么样 ;如果需要,用户可以使用undo命令。 我想,对于初学者来说……你的程序(简而言之)做什么? 这些布局多种多样,但举例来说,其中一个使用每个布局中保存的打印设置打印所有选定的布局。它有点原始,但它是天堂#039;t还没有时间整理出正确的编码,但基本上它会循环遍历每个布局,并使用send命令绘制布局。现在,有时这可能需要很长时间,用户可能会单击列表中的错误布局,或者忘记一个或两个布局,或者只是意外地单击按钮,因此一个转义选项将是很好的,而不仅仅是pogram完成后的撤消,我确实需要一些其他的程序,但不是这个。。 *喘息*;SendCommand ;绘制
真丢人
自从你';在布局中重新循环,一遍又一遍地执行相同的代码,我想您可以显示一个带有取消按钮的表单 ;您可以使用一个全局变量来指示用户是否按下了取消按钮-可能是布尔值 ;在每个循环开始时,检查全局变量的真/假值 ;如果用户按下取消按钮,变量将设置,程序将相应地响应
有什么意义吗? 为你提到的功能写两个词…
pub
lish
 ;为了演示,我将其与示例计时器一起弹出
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_ESCAPE = &H1B
Sub Test()
Dim intCnt As Integer
Dim PauseTime, Start, Finish, TotalTime
GetAsyncKeyState VK_ESCAPE
For intCnt = 1 To 10
If (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then
PauseTime = 5 ' Set duration.
Start = Timer ' Set start time.
Do While Timer < Start + PauseTime
DoEvents ' Yield to other processes.
If GetAsyncKeyState(VK_ESCAPE) Then
Exit For
End If
Loop
Finish = Timer ' Set end time.
TotalTime = Finish - Start ' Calculate total time.
MsgBox "Paused for " & TotalTime & " seconds"
Else
End
End If
Next intCnt
End Sub
真实数据! 我使用printalllayouts函数而不是publish,因为我更喜欢它而不是Public
I';我从来没有想过转义序列,可以方便地与20布局。可以中途停止发布命令吗? 是的! 哦也许无模式形式可以做到这一点,我没有#039;t搞乱了那些。
页:
[1]
2