Excel 2007 VBA:使用variablesselect工作表

我试图引用基于variables的工作表。

从顶层,我有一个由variables驱动的For循环Num = 1 To 18variables“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 

不幸的是,这是在这条线上的错误。 我在哪里错了?

您必须先激活表单,然后才能在其上select一些内容。 使用
Sheets(CurrentSN).Activate
之前
Sheets(CurrentSN).Range("A1").Select

问题是像Sheets集合这样的集合接受两种不同types的input:

  1. 名称/键
  2. 一个索引号

在你的情况下,你想要的键(序列号),但VBA试图检索索引号,作为一个数字,而不是一个string提供。 因此,您需要使用Sheets(CStr(CurrentSN))处理您的工作表!

此外,罗斯指出,你需要激活表之前,你select任何东西。 虽然在99.999%的情况下,你不需要这么用。完全select(因此。 .Activate ) – 参见http://www.cpearson.com/excel/optimize.htm