从另一个工作簿重命名工作表时出现错误 9

问题描述

我正在尝试从另一个工作簿重命名工作表,但出现错误 9

Dim dbWb As Workbook
'the workbook is open I saw it
Set dbWb = Workbooks.Open("Data.xlsx")  
        
Dim OldName As String
'the old name of the sheet is 1234567890                               
OldName = Activesheet.Range("A11")                  

'---HERE I have ERROR 9,the new name is 9876543210
dbWb.Sheets(OldName).Name = Activesheet.Range("G4") 

你能告诉我我的错误是什么吗?

解决方法

首先我会检查工作表是否存在。

Dim dbWb As Workbook
Set dbWb = Workbooks.Open("Data.xlsx")

Dim OldName As String
OldName = ActiveSheet.Range("A11")

If Evaluate("ISREF('" & dbWb.Path & "\[" & dbWb.Name & "]" & OldName & "'!A1)") Then
    dbWb.Sheets(OldName).Name = ActiveSheet.Range("G4")
Else
    MsgBox "Sheet does not exist"
End If

如果您收到消息“工作表不存在”,则表明工作表不存在。如果您仍然遇到相同的错误,请在您的代码中更加具体:不要只使用 ActiveSheet。而是使用 dbWbThisWorkbook 引用工作簿。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...