excel vba使用变量字符串按名称激活选项卡
有人能帮忙吗?我有一种感觉,这类问题很简单,已经被回答了很多次,但我似乎找不到有效的解决方案。被错误9击中:下标超出范围 一个很好的挫折是由于简单的代码工作。我有一个名为“Dist.12345-Store.67890”的电子表格。我有VBA代码,如果我使用以下命令,它将成功打开该选项卡:excel vba使用变量字符串按名称激活选项卡,vba,variables,excel,Vba,Variables,Excel,有人能帮忙吗?我有一种感觉,这类问题很简单,已经被回答了很多次,但我似乎找不到有效的解决方案。被错误9击中:下标超出范围 一个很好的挫折是由于简单的代码工作。我有一个名为“Dist.12345-Store.67890”的电子表格。我有VBA代码,如果我使用以下命令,它将成功打开该选项卡: Sub test() Worksheets("Dist.12345-Store.67890").visible = true End sub 但是,我不想在31个不同的sub中对这个字符串进行31次硬编码,而
Sub test()
Worksheets("Dist.12345-Store.67890").visible = true
End sub
但是,我不想在31个不同的sub中对这个字符串进行31次硬编码,而是想将一个字符串作为变量storeselect2放在一起,并将这个字符串引用为要显示的工作表。但我得到了错误9
Sub test()
Dim storeselect2 As String
storeselect2 = "Dist." & ActiveCell.Offset(0, -1).Value & "-Store." & ActiveCell.Value
` the storeselect2 is now = "Dist.12345-Store.67890" `
Sheets(storeselect2).Visible = True `this is where error 9 occurs`
End Sub
在代码中使用字符串引用选项卡名称时,如何使现有选项卡出现?这是因为字符串来自一个选项卡并试图打开另一个选项卡吗
谢谢 这就是你需要写的东西
Dim storeselect2 As String
Dim pig, dog, cat, bird As String
pig = "Dist."
dog = ActiveCell.Offset(0, -1).Value
cat = "-Store."
bird = ActiveCell.Value
storeselect2 = pig & dog & cat & bird
Sheets(storeselect2).Visible = False
对于那些(来自谷歌?)提出这个问题,寻求如何使用变量字符串按名称激活选项卡的直截了当答案的人:
Sheets(23).Activate
或
或
以编程方式操作工作表不需要激活工作表,您也可以选择它:
Sheets("mytabname").Select
说明在操作工作表之前,无需选择或激活工作表。执行任一操作都会减慢代码的速度。然而,我(和其他人)遇到过这样的情况:首先选择或激活我们想要操作的工作表似乎是避免错误所必需的
参考资料:
您是否注意到,您在工作样本中使用了
工作表
,但在损坏的样本中使用了工作表
?它们做不同的事情…代码很好。错误9“下标超出范围”仅表示工作簿中找不到工作表Dist.123445-Store.67890…请确保实际显示的工作表exists@SiddharthRout:使用debug.print可以准确地显示我希望在变量中看到的内容。我将尝试修剪步骤。如果有关系,工作和非工作示例之间的工作表名称不同。是否打开了多个工作簿?运行代码时是否可能有其他工作簿处于活动状态<代码>工作表()本身将始终引用活动工作簿。
Sheets("mytabname").Activate
Sheets("mytabname").Select