Vba 按变量选择工作表
我正在尝试激活基于变量的工作表。我不断得到一个运行时错误代码9 我的密码是:Vba 按变量选择工作表,vba,excel,Vba,Excel,我正在尝试激活基于变量的工作表。我不断得到一个运行时错误代码9 我的密码是: c = 42705 + (b - 1) * 7 Sheets.Add(After:=ActiveSheet).Name = c ' Do something here Worksheets("Import").Activate ' Do something here Worksheets(c).Activate 如果工作表的名称因迭代而不同,如何选择工作表?我会将工作表引用到如下变量,以避免更改名
c = 42705 + (b - 1) * 7
Sheets.Add(After:=ActiveSheet).Name = c
' Do something here
Worksheets("Import").Activate
' Do something here
Worksheets(c).Activate
如果工作表的名称因迭代而不同,如何选择工作表?我会将工作表引用到如下变量,以避免更改名称或索引时出现任何问题
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最佳实践,您应该始终定义并设置对所有工作簿和工作表的引用问题在于您没有使用
选项Explicit
,因此VBA认为c
属于变体
类型。因此,它首先转换为long,以后不会转换为string。始终使用选项显式
如果你加上
Dim c as String
对于您的代码,它应该可以工作。:)
目前,它正在寻找索引在40000左右的工作表,很可能您没有这么多
通常-如果按错误消息上的调试按钮,然后选择C
并按Shift键+
F9您将看到有关所选变量的更多信息。工作表的索引必须是字符串。将整数转换为字符串。我用Dim c作为变量。换成弦乐效果很好。谢谢,我需要阅读最佳实践来帮助正确设置。谢谢你的链接。