2013-04-01 120 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

相關問題