我正在尝试根据变量引用工作表。
从顶层开始,我有一个由变量Num = 1到18驱动的For循环 变量“CurrentSN”根据工作表上的序列号列表(“SN”)更改值。
Dim Num As Integer
Dim CurrentSN As String
CurrentSN = Sheets("SN's").Cells(Num, 1).Value
工作簿中包含18个预先存在的工作表,每个工作表都使用其中一个序列号命名(共18个)。我想参考每个循环的相应表格,所以我用...
Sheets(CurrentSN).Range("A1").Select
不幸的是,这条线路出错了。我在哪里错了?
答案 0 :(得分:3)
问题是像Sheets
集合这样的集合接受两种不同的输入:
在您的情况下,您需要密钥(序列号),但VBA会尝试检索索引号,因为数字而不是字符串。因此,您需要使用Sheets(CStr(CurrentSN))
!
另外,罗斯指出,您需要在选择任何内容之前激活工作表。虽然在99.999%的情况下,您根本不需要使用.Select
(因此.Activate
) - 请参阅http://www.cpearson.com/excel/optimize.htm
答案 1 :(得分:2)
您必须先激活工作表,然后才能选择工作表。使用
Sheets(CurrentSN).Activate
前
Sheets(CurrentSN).Range("A1").Select