2009-11-26 60 views
8

基本上我需要從另一個工作簿(找到並可以用UserForm打開,因此位置和名稱是可變的)收集一些公平的數字。我需要爲此使用VBA,因爲我還需要使用此數據填充圖表。我寧願不必打開另一個工作簿來完成它,但如果它更容易,那麼它就OK了。如何在VBA中引用另一個(打開或關閉)工作簿並將值返回? - Excel 2007

UserForm完成並正常工作,我有我需要填充圖表的代碼,但是我不能讓VBA從其他工作簿中拉回數據並將其分配給我需要的變量。

關於我如何讓VBA做到這一點的任何想法?這將不勝感激。

謝謝,

Rob。

回答

11

如果您想要訪問其中的數據,您將不得不以某種方式打開文件。顯然,一種方式是在Excel應用程序實例中打開它,例如: -

(未測試的代碼)

Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\myworkbook.xls") 

' now you can manipulate the data in the workbook anyway you want, e.g. ' 

Dim x As Variant 
x = wbk.Worksheets("Sheet1").Range("A6").Value 

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy 
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues) 
Application.CutCopyMode = False 

' etc ' 

Call wbk.Close(False) 

另一種方式來做到這一點是使用Excel的ADODB提供商打開一個連接該文件,然後使用SQL從所需工作表中選擇數據,但由於您無論如何都在Excel內工作,我不認爲有任何理由這樣做,而不是打開工作簿。請注意,Workbooks.Open()方法以只讀方式打開工作簿的可選參數等。

相關問題