如何在VBA中引用另一个(打开或关闭的)工作簿并将值向后拉Excel 2007
基本上,我需要从另一个工作簿中收集一些数据(可以通过一个用户表单找到并打开,因此位置和名称是可变的)。我需要使用VBA进行此操作,因为我还需要用此数据填充图表。我宁愿不必打开其他工作簿来完成它,但如果它更容易,那么就可以了 UserForm已经完成并且运行良好,我有填充图表所需的代码,但是我无法让VBA从其他工作簿中提取数据并将其分配给我需要的变量如何在VBA中引用另一个(打开或关闭的)工作簿并将值向后拉Excel 2007,vba,excel,Vba,Excel,基本上,我需要从另一个工作簿中收集一些数据(可以通过一个用户表单找到并打开,因此位置和名称是可变的)。我需要使用VBA进行此操作,因为我还需要用此数据填充图表。我宁愿不必打开其他工作簿来完成它,但如果它更容易,那么就可以了 UserForm已经完成并且运行良好,我有填充图表所需的代码,但是我无法让VBA从其他工作簿中提取数据并将其分配给我需要的变量 关于如何让VBA做这件事有什么想法吗?非常感谢。如果您想访问文件中的数据,必须以某种方式打开文件。显然,一种方法是在Excel应用程序实例中打开它,
关于如何让VBA做这件事有什么想法吗?非常感谢。如果您想访问文件中的数据,必须以某种方式打开文件。显然,一种方法是在Excel应用程序实例中打开它,例如:- (未测试代码) 另一种方法是使用Excel ADODB提供程序打开与文件的连接,然后使用SQL从所需的工作表中选择数据,但由于您仍然在Excel中工作,我认为没有任何理由这样做,而不仅仅是打开工作簿。请注意,Workbooks.Open()方法有一些可选参数,用于以只读方式打开工作簿等
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)