excel 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次硬编码,而

有人能帮忙吗?我有一种感觉,这类问题很简单,已经被回答了很多次,但我似乎找不到有效的解决方案。被错误9击中:下标超出范围

一个很好的挫折是由于简单的代码工作。我有一个名为“Dist.12345-Store.67890”的电子表格。我有VBA代码,如果我使用以下命令,它将成功打开该选项卡:

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