通过variablesselect工作表

我试图激活一个基于variables的工作表。 我继续得到一个运行时错误代码9。

我有的代码是:

c = 42705 + (b - 1) * 7 Sheets.Add(After:=ActiveSheet).Name = c ' Do something here Worksheets("Import").Activate ' Do something here Worksheets(c).Activate 

如何select工作表,如果工作表的名称会因迭代而有所不同?

问题是你不使用Option Explicit ,因此VBA认为cVarianttypes的。 因此,它首先被转换为long,并且不会在稍后转换为string。 总是使用Option Explicit。

如果您将Dim c as String添加到您的代码,它应该工作。 🙂

目前,它正在寻找索引大约40000 ,最有可能你没有这么多。

一般情况下 – 如果按错误消息上的debuggingbutton,然后selectC并按下Shift + F9 ,则会看到有关所选variables的更多信息。

我会将工作表引用到下面的variables中,以避免在更改名称或索引时出现任何问题。

 c = 42705 + (b - 1) * 7 Dim newWS As Worksheet Set newWS = Worksheets.Add(After:=ActiveSheet) newWS.Name = c ' Do something here Worksheets("Import").Activate ' Do something here newWS.Activate 

根据VBA最佳实践,您应该始终定义并设置对所有工作簿和工作表的引用