我有一个工作表需要引用一个封闭的或打开的(最好关闭的)外部工作簿来传输单元格值。
外部工作簿位于:
C:\用户\用户1 \桌面\ Folder1中
它被称为“Page.xls”
我的代码:
dim tmpCell as range
set tmpCell = Sheet3.("A1")
tmpCell.Value = '... Dunno what to put right here
等号后面的空格是我想放置外部引用的工作簿/单元格的地方。
答案 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