按变量选择工作表

时间:2017-05-23 14:49:03

标签: excel vba excel-vba

我正在尝试根据变量激活工作表。我一直在获取运行时错误代码9。

我的代码是:

var textview as TextView

如果工作表的名称因迭代而异,我该如何选择工作表?

2 个答案:

答案 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最佳实践,您应始终定义和设置对所有工作簿和工作表的引用