我的excell宏中有一个非常基本的问题。我用Excell记录了一个宏,只是在其上选择了一张,正如您可能想象的那样,结果代码如下:
Sub Macro2()
Sheets("Graphs").Select
End Sub
但是当我尝试执行上面的宏时,我收到错误:"应用程序定义的错误或对象定义的错误"
之前有人见过这个吗?
答案 0 :(得分:0)
您收到的错误表示VBA无法确定您指的是哪个对象。
VBA很好,因为它“聪明”,并且允许你编程而不确切地指明你所指的是什么。
由于完全相同的原因,VBA很糟糕,因为除非您知道VBA正在使用哪个优先级,否则很难确定为什么VBA没有使用您希望它使用的对象。不仅对于对象而且对于“隐式”类型变量也是如此,您可能希望VBA将变量作为数字处理,但是VBAs“智能”使其将其作为字符串处理。
解决这个问题的方法是显式输入你希望VBA做的事情,在你的情况下,VBA可能试图在另一个没有名为“Graphs”的工作表的工作簿中找到名为“Graphs”的工作表。 / p>
请改为尝试:
Sub MyMacro()
Dim myWorkBook As Excel.Workbook
Dim myWorkSheet As Excel.Worksheet
Set myWorkBook = Application.Workbooks("nameofyourworkbook.xlsm")
Set myWorkSheet = myWorkBook.Sheets("Graphs")
myWorkSheet.Select
End Sub