使用VBA中运行时添加的工作表代码名称
由于各种原因,我更喜欢使用代号来引用VBA代码中的工作表。
但是,当我dynamic地添加一个这样的工作表(只有一张工作表):
Sub example() Worksheets.Add After:=Worksheets(Worksheets.Count) 'SOME OTHER CODE HERE Sheet2.Activate End Sub
…它不会编译,因为Sheet2
没有被定义为一个variables。
有没有解决的办法? 目前我正在恢复使用表单名称:
Sheets("Sheet2").Activate
有没有办法使用代号来做到这一点?
提前致谢。
将VBA中的代码名称用于编译时存在的表单是一个好主意。 如您所知,即使用户更改其名称,也可以引用该工作表。
但是,在运行时很难做到。 如果用户已授予对VBA项目对象模型的访问权限,则可以使用VBAProject属性来执行此操作。 但是,只要设置一个WorkSheet
variables,您就可以完成您想要的function,持续进行用户validation,
Sub example() Dim NewWorkSheet1 as Excel.Worksheet Worksheets.Add After:=Worksheets(Worksheets.Count) Set Newworksheet1 = ActiveSheet 'SOME OTHER CODE HERE End Sub
请注意,添加工作WorkSheet
它是ActiveSheet
。
此外,如果需要该级别的范围,则可以将WorkSheet声明为项目级或模块级variables。