如何在VBA中引用另一个(打开或关闭)工作簿,并将值拉回? - Excel 2007

Rob*_*b A 8 excel vba excel-vba

基本上我需要从另一个工作簿中收集一些数字(找到并可以由UserForm打开,因此位置和名称是可变的).我需要使用VBA,因为我还需要用这些数据填充图表.我宁愿不必打开其他工作簿来做到这一点,但如果它更容易,那就OK了.

UserForm已经完成并且工作正常,我有填充图表所需的代码,但是我无法让VBA从其他工作簿中提取数据并将其分配给我需要它的变量.

关于如何让VBA这样做的任何想法?这将不胜感激.

谢谢,

抢.

Ada*_*lph 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)
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用Excel ADODB提供程序打开与该文件的连接,然后使用SQL从您想要的工作表中选择数据,但由于您无论如何在Excel中工作,我不相信有任何这样做的原因而不仅仅是打开工作簿.请注意,Workbooks.Open()方法有可选参数以只读方式打开工作簿等.