vba创build一个新工作表并更改名称
我是VBA新用户。 我的目的是复制一个现有的工作表到一个新的。 然后将新的工作表名称更改为适当的名称。 但是,我得到了像VBA错误信息,
vba运行时错误9下标超出范围(在行Set new_ws = Active …)
VBA代码如下: 提前致谢
Sub CreateWS() Dim ws As Worksheet Dim new_ws As Worksheet Set ws = ActiveWorkbook.Worksheets("Bus Voltage") ws.Name = "Bus Voltage_All" ws.Copy Worksheets(Sheets.Count) Set new_ws = ActiveWorkbook.Worksheets("Bus Voltage_All(2)") new_ws.Name = "Bus Voltage" End Sub
它看起来像你有一个空间的问题。
您的行Set new_ws = ActiveWorkbook.Worksheets("Bus Voltage_All(2)")
应该
Set new_ws = ActiveWorkbook.Worksheets("Bus Voltage_All (2)")
注意_All之后的空格 你在代码中遗漏了这个。
(可能)有帮助的是,当您使用.Copy
方法时,您的新工作表会自动激活,因此您可以使用此代码(以避免空间错误):
ws.Copy Worksheets(Sheets.Count) Set new_ws = ActiveSheet
而且,关于引用表的主题(尽pipe不直接与您的问题相关),您可以使用称为CodeName的内容来引用表单。
例如:
CodeNames是Sheet1,Sheet2等
代码:
Worksheets("Old Data").Activate
和
Sheet1.Activate
是等同的。
通过这种方式引用工作表的主要好处是,如果您的工作表名称发生更改,您的代码将不会中断。