我有一系列宏可以自动完成大部分流程。我想通过Excel加载项将此内容分发给我的同事,我有一段代码,我似乎无法做对。
这是"主人"代码(工作正常):
Option Explicit
Sub MIUL_Run_All()
Dim StartTime As Double
Dim SecondsElapsed As String
'Remember time when macro starts
StartTime = Timer
Call OptimizeCode_Begin
Call Save_As
Call Format_MIUL
Call Custom_Sort_MIUL
Call Insert_Process_List
Call Format_Process_List
Call OptimizeCode_End
'Determine how many seconds code took to run
SecondsElapsed = Format((Timer - StartTime) / 86400, "ss")
'Notify user in seconds
MsgBox "This code ran successfully in " & SecondsElapsed & " seconds",
vbInformation
End Sub
给我带来麻烦的代码是" Save_As"。我希望用户做的第一件事是将文件保存为启用宏的文件。理想情况下,我希望代码为用户执行以下操作:
我认为这将是一件相当简单的事情,但到目前为止它一直是我代码中最棘手的部分。
以下是我为Save_As代码尝试的内容:
Application.Dialogs(xlDialogSaveAs).Show , xlOpenXMLWorkbookMacroEnabled
此代码非常简单,但它没有解决取消按钮。
Dim userResponse As Boolean
On Error Resume Next
userResponse = Application.Dialogs(xlDialogSaveAs).Show(52)
On Error GoTo 0
If userResponse = False Then
Exit Sub
Else
End If
由于某种原因,这并没有解决取消按钮。
我已经尝试了六种不同的东西,其中大部分与上述代码类似。
感谢任何帮助。
答案 0 :(得分:0)
你有这个:
If FileDialog.Show = False Then
Exit Sub
End If
这不会导致错误,仅仅是识别状态。如果只有错误,您将需要Exit Sub。
可以通过替换:
来实现此错误处理On Error Resume Next
userResponse = Application.Dialogs(xlDialogSaveAs).Show(52)
On Error GoTo 0
If userResponse = False Then
Exit Sub
Else
End If
使用:
On Error GoTo Cat
userResponse = Application.Dialogs(xlDialogSaveAs).Show(52)
Cat:
Exit Sub