问题描述
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
。而是使用 dbWb
或 ThisWorkbook
引用工作簿。