Excel外部工作簿参考

时间:2015-07-06 21:51:57

标签: excel vba excel-vba

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

外部工作簿位于:

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

它被称为“Page.xls”

我的代码:

dim tmpCell as range
set tmpCell = Sheet3.("A1")

tmpCell.Value = '... Dunno what to put right here

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

3 个答案:

答案 0 :(得分:2)

你可以尝试一下:

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

如果这确实有效,那么最佳案例场景如果您移动或弄乱该源工作簿仍会出现问题,即使您不这样做,我认为Excel仍然倾向于表现奇怪地引用其他类似的工作簿

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

{{1}}

最后一个选项是与工作簿建立ODBC连接 - 我确实喜欢第二个选项

答案 1 :(得分:0)

我从未找到过访问已关闭的Excel文件的方法。以下是打开文件,复制值和关闭文件所需的内容。

if(is_user_logged_in())

答案 2 :(得分:0)

您可以通过两种方式实现:

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

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

详细了解here