2015-07-06 3 views
0

У меня есть рабочий лист, который должен ссылаться на закрытую или открытую (закрытую предпочтительную) внешнюю книгу для переноса значений ячейки.Справочник по внешней книге Excel

Внешний Workbook в:

C: \ Users \ Пользователь1 \ Desktop \ Folder1

и называется "Page.xls"

Мой код:

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

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

Пространство за равным знаком - это место, где я хочу поставить внешнюю ссылку w orkbook/клетка.

ответ

2

Не могли бы вы попробовать:

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 в книгу - мне нравится этот второй вариант, хотя

0

Я никогда не нашел способ получить доступ к закрытому файлу 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 
0

Вы можете сделать это двумя способами:

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

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

Узнайте больше о том, что here

Смежные вопросы