如何引用另一个(打开或closures)工作簿,并在VBA中将值返回? – Excel 2007

基本上我需要从另一个工作簿(这是find的,可以打开一个用户窗体,因此位置和名称是可变的)收集公平的几个数字。 我需要为此使用VBA,因为我还需要使用此数据填充图表。 我宁愿不必打开其他工作簿,以便做到这一点,但如果它更容易,那么确定。

用户窗体完成,工作正常,我有我需要填充图表的代码,但是我不能让VBA从其他工作簿拉回数据,并将其分配给我需要的variables。

关于如何让VBA做到这一点的任何想法? 这将不胜感激。

谢谢,

抢。

如果要访问其中的数据,则必须以某种方式打开该文件。 显然,一种方法是在您的Excel应用程序实例中打开它,例如: –

(未经testing的代码)

Dim wbk As Workbook Set wbk = Workbooks.Open("C:\myworkbook.xls") ' now you can manipulate the data in the workbook anyway you want, eg ' 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从所需工作表中select数据,但由于您是在Excel内工作,所以我不相信有任何理由这样做,而不是打开工作簿。 请注意有Workbooks.Open()方法以只读方式打开工作簿的可选参数等