2013-04-01 63 views
0

我正在尝试引用基于变量的工作表。Excel 2007 VBA:使用变量选择工作表

从顶层开始,我有一个由变量驱动的For循环Num = 1 To 18 变量“CurrentSN”根据工作表上的序列号列表(“SN's”)更改值。

Dim Num As Integer 
Dim CurrentSN As String 

CurrentSN = Sheets("SN's").Cells(Num, 1).Value 

18个预先存在的工作表在工作簿中,每个工作表都以这些序列号之一(总共18个)命名。我想参考每个循环的适当表,所以我用...

Sheets(CurrentSN).Range("A1").Select 

不幸的是,这是错误的这一行。我在哪里错了?

+0

您在循环内部想要做什么? – NickSlash

回答

2

您必须先激活工作表,然后才能在其上选择一些内容。前
Sheets(CurrentSN).Range("A1").Select

+0

这样做 - 谢谢! – broconnor1

+0

@ broconnor1我很高兴我能帮忙,谢谢你接受我的回答! –

2

问题,请使用
Sheets(CurrentSN).Activate
是像Sheets集合的集合接受两种不同类型的输入:

  1. 的名称/键
  2. 索引号

在你的情况下,你想要的密钥(th e序列号),但VBA会尝试检索索引编号,因为编号而不是字符串。因此,您需要用Sheets(CStr(CurrentSN))来解决您的工作表!

另外,罗斯指出,在选择任何东西之前,您需要激活表格。虽然在99.999%的情况下,您根本不需要如此使用.Select(因此也就是.Activate) - 请参阅http://www.cpearson.com/excel/optimize.htm

相关问题