尝试使用两个单元格值

时间:2015-10-12 07:34:30

标签: excel-vba vba excel

尝试使用两个单元格值(单元格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"

请帮忙。谢谢。

1 个答案:

答案 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