从一个封闭的工作簿到一个数组

如何从一个封闭的工作簿中获取一系列数据到VBA中的一个数组中? 最好不打开工作簿。

谢谢

不知道你是否可以做到这一点,而无需打开工作簿。 我build立了一个像下面的函数。

Private Function GetValue(path, file, sheet, ref) Dim wb As Workbook Application.ScreenUpdating = False Set wb = Workbooks.Open(path & Application.PathSeparator & file) Worksheets(sheet).Activate GetValue = Range(ref) wb.Close savechanges:=False Application.ScreenUpdating = True End Function 

然后像使用它

 Dim path As String Dim file As String Dim sht As String Dim rng As String path = ThisWorkbook.path file = "book.XLSX" sht = "Sheet1" rng = "A1:D300" ActiveSheet.Range("A1:D300").Value = GetValue(path, file, sht, rng) 

如果您只对已closures的工作簿中的数据值感兴趣,则可以将打开的工作簿的空白区域用作临时区域,然后使用数组公式将该区域填充:

 ScratchWorksheet.Range("B1", "B3").FormulaArray = "='PathToClosedBook\[ClosedBook.xlsx]Sheet1'!$B$1:$B$3" 

完成后,可以删除FormulaArray,以免在打开的工作簿中留下外部链接。