以下代码中未正确显示和存储N7单元格中的工作表名字,请帮我修改 Sub 打开工作簿() Dim wbName As String Dim wsName As String wbName = Range("N11").Value If InStr(wbName, ".") = 0 Then wbName = wbName & ".xlsx" End If On Error Resume Next Workbooks(wbName).Activate If Err.Number <> 0 Then MsgBox "尚未找到名为 " & wbName & " 的工作簿,请确认该工作簿已打开。", vbInformation, "呆仔提示" Else wsName = Range("N7").Value On Error Resume Next Worksheets(wsName).Activate If Err.Number <> 0 Then MsgBox "尚未找到名为 " & wsName & " 的工作表,请确认该工作表存在于 " & wbName & " 工作簿中。", vbInformation, "呆仔提示" End If End If On Error GoTo 0 End Sub
时间: 2023-07-21 20:11:35 浏览: 169
工作簿中另存指定工作表并以单元格数据命名
4星 · 用户满意度95%
请将代码中的 wsName = Range("N7").Value 改为 wsName = ThisWorkbook.Worksheets("Sheet1").Range("N7").Value,其中"Sheet1"需根据实际工作表名称进行修改。这样可以明确指定要操作的工作表,避免因为没有指定工作表而导致代码出错。同时,使用 ThisWorkbook 可以确保代码只针对当前工作簿进行操作。修改后的代码如下:
Sub 打开工作簿()
Dim wbName As String
Dim wsName As String
wbName = Range("N11").Value
If InStr(wbName, ".") = 0 Then wbName = wbName & ".xlsx"
On Error Resume Next
Workbooks(wbName).Activate
If Err.Number <> 0 Then
MsgBox "尚未找到名为 " & wbName & " 的工作簿,请确认该工作簿已打开。", vbInformation, "呆仔提示"
Else
wsName = ThisWorkbook.Worksheets("Sheet1").Range("N7").Value
On Error Resume Next
Worksheets(wsName).Activate
If Err.Number <> 0 Then
MsgBox "尚未找到名为 " & wsName & " 的工作表,请确认该工作表存在于 " & wbName & " 工作簿中。", vbInformation, "呆仔提示"
End If
End If
On Error GoTo 0
End Sub
阅读全文