Excel宏中的错误:应用程序定义的错误或对象定义的错误

时间:2014-12-29 13:30:46

标签: excel

我的excell宏中有一个非常基本的问题。我用Excell记录了一个宏,只是在其上选择了一张,正如您可能想象的那样,结果代码如下:

Sub Macro2()
    Sheets("Graphs").Select
End Sub

但是当我尝试执行上面的宏时,我收到错误:"应用程序定义的错误或对象定义的错误"

之前有人见过这个吗?

1 个答案:

答案 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