2013-07-12 38 views
-1

我有一個每天的儀表板文件,其中我每天從5個不同的文件用宏抽取數據。宏工作正常,但它詢問我應該選擇哪個文件的具體步驟:Workbooks.Open vFile(出現一個窗口,我只是選擇文件)。這些文件正在每週或每月更改,所以我想要做的是將源代碼插入特定的單元格,並且宏不會要求我提供該文件,但會將源代碼放在那裏。宏從不同的文件中提取數據

這可能嗎?

代碼(我不把整個代碼,但只是一部分,我想改變)

vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 

Workbooks.Open vFile 

然後是宏指的活動文件&表。一旦我把所有的數據複製,另一個窗口,提示我選擇第二個文件等

vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select Front End Tracker ", "Open", False) 

Workbooks.Open vFile 

我想改變的是,而不必爲文件選擇窗口,我想宏觀拿來自Excel工作表中特定單元格的文件的來源和名稱。有關如何這樣做的任何想法?

+1

顯然這是可能的...但你的問題是有點不清楚。這是相當有必要顯示你有代碼,並指出你想改變的部分... –

+0

@KazJaw對不起,整個宏很長,所以我認爲打開文件的部分就足夠了:vFile = Application.GetOpenFilename( 「Excel文件(* .xl *)」,「&」* .xl *「,1,」選擇WF報告「,」打開「,False)Workbooks.Open vFile
然後宏引用活動文件& 。 vFile = Application.GetOpenFilename(「Excel文件(* .xl *)」,「*」* .xl *「,1,」select前面的所有數據複製後,另一個窗口會提示並選擇第二個文件End Tracker「,」Open「,False)Workbooks.Open vFile – user2576348

+0

對不起,我不熟悉所有這些編輯。 – user2576348

回答

1

答案很簡單,但我會盡力爲您提供一些選擇。

A),如果你要在單元格A1完整路徑名和文件名,如:如果你

'comment this line by adding ' at the beginning 
'vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 
'change next line by adding reference to the cell 
Workbooks.Open Range("A1") 
'or with reference to sheet name and range A1- change according to your situation 
Workbooks.Open Sheets("put here sheet name").Range("A1") 

B):

c:\users\user_name\Documents\files\moj plik.xlsx 

,那麼你只需要改變你的代碼如下想要引用文件名,只需要以某種方式定義文件的路徑。

moj plik.xlsx 

那麼你的代碼將被相應改變:如果像你的單元格A1僅文件名

'comment this line by adding ' at the beginning 
'vFile = Application.GetOpenFilename("Excel Files (.xl)," & ".xl", 1, "select WF Report", "Open", False) 
'change by adding reference to the cell and path constant 
Dim xlsPath as String 
    xlsPath = "c:\users\user_name\Documents\files\" 
'change above accordingly to what you have 
Workbooks.Open xlsPath & Range("A1") 
'or with reference to sheet name and range A1- change according to your situation 
Workbooks.Open xlsPath & Sheets("put here sheet name").Range("A1") 
+0

這是確實很容易。非常感謝! – user2576348