我正在尝试使用 VBA 将 excel 工作表重命名为该工作表上单元格的内容。
我创建了一个名为Rename_Sheets的单独模块,在线的各种帖子建议以下代码:
Sheets(3).Name = Sheet3.Range("A5")
或其非常相似的变体。
使用 debug.print,上述代码的两个部分都返回预期的结果,即工作表名称和单元格文本。当我按照引用的方式运行代码时,我收到消息"应用程序定义或对象定义错误"。我不明白为什么我会收到错误消息。
你有错别字
取代
Sheet3.Range("A5")
自
Sheets(3).Range("A5")
祝你好运
Sheet3.Range("A5")
返回一个范围对象。相反,您想要的是返回的范围对象的 Value 属性:
Sheets(3).Name = Sheet3.Range("A5").Value
但请注意,一旦代码运行一次并且 Sheet3 被重命名,它将再次开始抛出错误,因为"Sheet3"将不存在。如果将其Sheets(3).Range("A5").Value
与等号的另一侧相似,则此代码将多次工作。