尝试使用两个单元格值(单元格A1和A2)重命名工作簿中的所有工作表。但我得到运行时错误' 9'订阅超出范围。
我的代码如下:
Sub my()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Name = ws.Range("A1").Value & "~" & Split(Range("A2").Value, " ")(0)
Next
End Sub
其中,单元格A1的值是" a"并且单元格A2的值是" 00 b"
请帮忙。谢谢。
答案 0 :(得分:1)
您的问题是,您还没有设置第二个Worksheet
对象的Range
,因此它正在从您的活动工作表而不是ws
访问该值。如果" A2"将发生错误9。是空白还是您尝试分配重复的名称。我敢打赌,你有一个不同的工作表被激活,并且有一个空白单元格" A2"。
你的专栏可能是:
ws.Name = ws.Range("A1").Value & "~" & Split(ws.Range("A2").Value, " ")(0)
但如果我是你,那么我会留意Tony Dallimore的建议,因为你的代码中没有任何错误处理。尝试将第一和第二部分分配给变量,并在重命名工作表之前测试它们是否正常。
FWIW,我还定义Worksheets
对象的父级,如下所示:
For Each ws in ThisWorkbook.Worksheets