Excel外部工作簿参考

我有一个工作表,需要引用一个封闭的或打开(封闭更好的)外部工作簿来传输单元格的值。

外部工作簿在:

C:\用户\用户1 \桌面\ Folder1中

它被称为“Page.xls”

我的代码:

dim tmpCell as range set tmpCell = Sheet3.("A1") tmpCell.Value = '... Dunno what to put right here 

等号后面的空格是我想要放在外部引用的工作簿/单元格的位置。

你可以试试:

 tmpcell.formula = "='C:\Users\User1\Desktop\Folder1\[Page.xls]Sheet1'!A1" 

如果这确实起作用,那么最好的情况下,如果你曾经移动或者混淆了源代码工作簿,那么你仍然会遇到问题,即使你不这样认为,Excel仍然有一种奇怪的方式来引用其他工作簿。

您的其他选项是(首先确保源工作簿已closures)打开工作簿,复制值并closures它:

 dim tmpCell as range set tmpCell = ThisWorkbook.Worksheets("Sheet3").Range("A1") dim sourceWorkbook as Workbook set sourceWorkbook = Workbooks.Open("C:\Users\User1\Desktop\Folder1\Page.xls") dim sourceWorksheet as Worksheet set sourceWorksheet = sourceWorkbook.Worksheets("Sheet1") tmpCell.Value = sourceWorksheet.range("A1").Value Application.DisplayAlerts = False sourceWorkbook.Close Application.DisplayAlerts = True 

最后一个选项是做一个ODBC连接到工作簿 – 我喜欢这个第二个选项

我从来没有find一种方法来访问一个closures的Excel文件。 以下是您需要打开文件,复制值并closures文件的内容。

 dim tmpCell as range set tmpCell = Sheet3.("A1") set myFile = "C:\Users\User1\Desktop\Folder1\page.xls" set myFileName = "page" set mySheetName = "Sheet1" set myRange = "A1" workbooks.open fileName:=myFile tmpCell.Value = Workbooks(myFileName).Sheets(mySheetName).range(myRange).value workbooks.close fileName:=myFile 

你可以通过两种方式来做到这一点:

 tmpCell.FormulaR1C1 = "='C:\path\[workbook.xls]Sheet1'R1C2" 'Or alternatively: tmpCell.Formula = "='C:\path\[workbook.xls]Sheet1'B1" 

在这里阅读更多