-1
我想根據變量選擇工作表。我可以用變量sname成功重命名工作表,但不能激活相同的工作excel vba:工作表名稱作爲變量
Dim sname as String
sname = Trim(Cells(row, 12).Value)
Sheets("Blank (2)").name = sname
Sheets(sname).Activate
Sheets(sname).Select
我想根據變量選擇工作表。我可以用變量sname成功重命名工作表,但不能激活相同的工作excel vba:工作表名稱作爲變量
Dim sname as String
sname = Trim(Cells(row, 12).Value)
Sheets("Blank (2)").name = sname
Sheets(sname).Activate
Sheets(sname).Select
你說這是行得通的嗎?
Sheets("Blank (2)").name = sname
然後,這樣做:
With Sheets("Blank (2)")
.Name = sname
.Activate
.Select
End With
的想法是抓住你正在使用的工作表中的參考,而不是不斷地從Sheets
收集每一個獲取對象時間。
或者:
Dim target As Worksheet
Set target = ThisWorkbook.Worksheets("Blank (2)")
target.Name = sname
target.Activate
target.Select
注意,Sheets
收集,不合格的爲你使用它,含蓄是指活動工作簿。假設活動工作簿是寫入代碼的同一工作簿,最好使用ThisWorkbook
來限定呼叫,並使用Worksheets
集合代替 - 因爲Sheets
集合可以包含非工作表對象(例如圖表)。
最後,我懷疑這裏有什麼需要.Select
什麼東西。閱讀更多關於避免.Select
和.Activate
here。
適合我。你會得到什麼錯誤? – CustodianOfCode
我得到的錯誤'下標超出範圍' –
爲什麼你需要'。激活'和'。選擇'無論如何表? –