通过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认为c
是Variant
types的。 因此,它首先被转换为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最佳实践,您应该始终定义并设置对所有工作簿和工作表的引用