[英]Excel External Workbook Reference
我有一個工作表,需要引用一個封閉的或開放的(最好封閉的)外部工作簿來傳遞單元格值。
外部工作簿位於:
C:\\ Users \\ User1 \\ Desktop \\ 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仍然傾向於表現出奇怪的引用其他工作簿的趨勢。
您的其他選擇是(首先確保源工作簿已關閉)打開工作簿,將值復制過來,然后將其關閉:
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連接-我確實喜歡第二個選項
我從未找到訪問封閉的Excel文件的方法。 以下是打開文件,復制值和關閉文件所需要的。
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"
在這里閱讀更多關於
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.