我有顺序标签(1
最多100
)。我需要代码按顺序在标签之间移动。但是,代码必须引用选项卡名称(例如,1
,2
,3
,4
等),因为稍后会创建选项卡。到目前为止我有这个:
Sub Next_Page()
Sheets(ActiveSheet.Name + 1).Visible = True
Sheets(ActiveSheet.Name + 1).Activate
End Sub
它引用了工作簿中的第二个ActiveSheet,而不是标题为2
的选项卡。为了让事情更加令人困惑,如果我将它返回到消息框中,我会正确地获得2
。没有引号,这就是结果。
答案 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 的工作表。