我正在尝试根据变量激活工作表。我一直在获取运行时错误代码9。
我的代码是:
var textview as TextView
如果工作表的名称因迭代而异,我该如何选择工作表?
答案 0 :(得分:4)
问题在于您不使用Option Explicit
,因此VBA认为c
属于Variant
类型。因此,它首先转换为long,之后不会转换为字符串。总是使用Option Explicit。
如果你添加
对您的代码Dim c as String
,它应该有效。 :)
目前,它正在寻找一张索引大约为40000
的工作表,很可能你没有这么多。
一般情况下 - 如果您按错误消息上的 Debug 按钮,然后选择C
并按 Shift +
F9 您会看到有关所选变量的更多信息。
答案 1 :(得分:2)
我会将工作表引用到下面的变量,以避免在更改名称或索引时出现任何问题。
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最佳实践,您应始终定义和设置对所有工作簿和工作表的引用