2013-07-18 122 views
0

我試圖製作一個宏,它將委員會計算表複製到我的牙科委員會報告中。問題是我在目的地有一個固定的名字「June Dental Commissions v5.xlsm」。有沒有辦法用我在宏中定義爲當前工作簿的變量替換「June Dental Commissions v5.xlsm」?Excel的動態目標工作簿VBA

Workbooks.Open Filename:= _ 
    "X:\Customer Service\Dental Reports\Commission Report Calculation\Commission Calculation Tables.xlsx" 
Sheets(Array("Entire Commission Table", "Zip & Terr List May 2013", _ 
    "Abbreviation Finder")).Select 
Sheets("Zip & Terr List May 2013").Activate 
Sheets(Array("Entire Commission Table", "Zip & Terr List May 2013", _ 
    "Abbreviation Finder")).Copy Before:=Workbooks(_ 
    "June Dental Commissions v5.xlsm").Sheets(4) 

回答

3
Dim wb as Workbook, fName as string, fPath as string 

fPath = "X:\Customer Service\Dental Reports\Commission Report Calculation\" 
fName = "Commission Calculation Tables.xlsx" 

Set wb = Workbooks.Open(fPath & fName) 

wb.Sheets(Array("Entire Commission Table", "Zip & Terr List May 2013", _ 
    "Abbreviation Finder")).Copy Before:=ThisWorkbook.Sheets(4) 
+0

此相適應,如果宏在目標文件該解決方案將正常工作。 – nutsch

+0

這就是我解釋「宏中的當前工作簿」的方式,但我承認OP有可能意味着別的東西。 –

1

如果宏是不是在活躍的文件,使用的Tim的代碼

Dim wb as Workbook, fName as string, fPath as string, wbDest as workbook 

fPath = "X:\Customer Service\Dental Reports\Commission Report Calculation\" 
fName = "Commission Calculation Tables.xlsx" 

set wbDest=activeworkbook 
Set wb = Workbooks.Open(fPath & fName) 

wb.Sheets(Array("Entire Commission Table", "Zip & Terr List May 2013", _ 
    "Abbreviation Finder")).Copy Before:=wbDest.Sheets(4) 

wb.close(false) 
+0

我得到下標超出範圍錯誤...該死的。 –

+0

你確定這些表名是否存在? – nutsch

相關問題