[英]Error in Excel macro: Application-defined or object-defined error
我的 Excel 宏中有一个非常基本的问题。 我用 Excell 录制了一个宏,然后只在上面选择了一张纸,如您所想,生成的代码如下:
Sub Macro2()
Sheets("Graphs").Select
End Sub
但是当我尝试执行上面的宏时,出现错误:“应用程序定义或对象定义错误”
有人见过这个吗?
您收到的错误表明 VBA 无法确定您指的是哪个对象。
VBA 很好,因为它是“智能的”,并且允许您在不准确指定所指内容的情况下进行编程。
由于完全相同的原因,VBA 很糟糕,因为很难确定为什么 VBA 不使用您希望它使用的对象,除非您知道 VBA 使用的优先级。 这不仅适用于对象,而且适用于“隐式”类型变量,您可能希望 VBA 将您的变量作为数字处理,但 VBA 的“智能”使其将其作为字符串处理。
解决此问题的方法是明确键入希望 VBA 执行的操作,在您的情况下,VBA 可能试图在没有名为“Graphs”的工作表的不同工作簿中访问名为“Graphs”的工作表。
试试这个:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.