要转移到下一张工作表的参考表名称

时间:2015-10-13 00:42:56

标签: excel vba excel-vba

我有顺序标签(1最多100)。我需要代码按顺序在标签之间移动。但是,代码必须引用选项卡名称(例如,1234等),因为稍后会创建选项卡。到目前为止我有这个:

Sub Next_Page()
    Sheets(ActiveSheet.Name + 1).Visible = True
    Sheets(ActiveSheet.Name + 1).Activate
End Sub

它引用了工作簿中的第二个ActiveSheet,而不是标题为2的选项卡。为了让事情更加令人困惑,如果我将它返回到消息框中,我会正确地获得2。没有引号,这就是结果。

1 个答案:

答案 0 :(得分:0)

工作表可以由其Worksheet.Name property或其Worksheet.Index property(以及其他)引用。

.Name 属性始终是字符串;即使该字符串看起来像数字或日期。 .Index 属性始终是介于1和工作簿中工作表数量之间的真实数字(例如Worksheets.Count property)。

将{strong> 1 添加到ActiveSheet名称的方法可以将看起来像数字的字符串转换为实际的真实数字。您需要将其转换回字符串。

Sub Next_Page()
    Sheets(CStr(ActiveSheet.Name + 1)).Visible = True
    Sheets(CStr(ActiveSheet.Name + 1)).Activate
End Sub

您的代码无疑已被简化,但我建议您选择检查以确保Sheets(CStr(ActiveSheet.Name + 1))存在的内容,如果您已经在工作表 4 那么没有名为 5 的工作表。