我有一个 VBA 程序,要求用户输入所需的范围,该范围位于另一个打开的工作簿中。如果出现错误,即手动激活另一个工作簿,但没有选择范围,或者出现错误,我希望程序显示带有错误消息的原始宏工作簿工作表。下面的代码在调试模式下工作,但是当 VBA 程序运行时,它会正确显示错误但不显示原始宏工作表。它保留在用户手动激活的工作表上。我错过了什么?
在下面的代码中,“HMArea”是获取用户输入的例程返回的 Range 变量。“Macro_Fname”是原始 VBA 程序文件名的字符串变量。
HM_file = FileName(HMArea)
If HM_file = "Macro_Fname" Then
Windows("Macro_Fname").Activate
Sheets("[name of the sheet in Macro_Fname]").Select
Range("D4").Select
MsgBox "ERROR: No data selected"
Exit Sub
End If