2015-08-03 40 views
0

林試圖創建一個VBA腳本以VLOOKUP到另一個工作簿。第二本工作手冊的名稱始終是Stock.xls。 Stock.xls中的數據始終位於第一張工作表中,但此表的名稱每天都有所不同。它可以是ARTLIST1,ARTLIST2,ARTLIST(3),ARTLIST-4等,但始終以ARTLIST開始。 我怎麼能告訴VBA腳本只是使用第一個表,或者表總是包含單詞ARTLIST(例如ARTLIST *)Excel的VBA腳本VLOOKUP其他文件,未知的工作表名稱

ActiveCell.FormulaR1C1 = _ 
    "=VLOOKUP(C[-36],'[Stock.xls]ARTLIST1'!R1:R65536,13,0)" 
Selection.Copy 

幫助表示高度讚賞。提前致謝!

Richard

+0

你看的東西嗎?在這個網站上有很多例子。 [Here is one](http://stackoverflow.com/a/25953980/4243498) – ChipsLetten

+0

你試過搜索嗎? INDIRECT()函數幾乎可以做到這一點...您可以使用INDIRECT(A1),其中A1包含您正在查找的工作表名稱。 – SpaceSteak

+0

使用INDIRECT我需要將工作表的名稱放在A1中,對嗎?我需要全自動的東西..我不需要填寫任何東西來選擇第一張紙。理想情況下,我的代碼不是在上面的代碼中使用ARTLIST1,而是使用Worksheet(1)或ARTLIST *。 – Richard

回答

1

您可以通過索引引用它並獲取名稱。然後你在公式的建築物中的名稱變量。

Dim wsName as string 
Dim ws As Excel.Worksheet 

Set ws = Application.Worksheets(1) 
wsName = ws.Name 

ActiveCell.FormulaR1C1 = "=VLOOKUP(C[-36],'[Stock.xls]" & wsName & "'!R1:R65536,13,0)" 
Selection.Copy 
0

使用工作表以1指數得到第一張:

For each ws in worksheetsFor Each ws In ActiveWorkbook.Worksheets 
    If ws.Index = 1 Then 
     'Do code, this is the first worksheet 
    End If 
Next ws 
相關問題