MyTetra Share
Делитесь знаниями!
Получение данных из закрытой книги Excel
30.12.2017
23:05
Текстовые метки: Open,Workbooks.Open
Раздел: VBA - GetOpen

Получение данных из закрытой книги Excel

Функция GetValue предназначена для получения данных из закрытой книги Excel

Использовать такой способ имеет смысл только в том случае, если из большого файла надо получить значения только нескольких ячеек (или одного диапазона ячеек), и при этом точно известно расположение на листе интересующих нас ячеек, и имена листов

Пример использования функции:

Sub ПримерИспользования_GetValue()

p = "C:\Documents and Settings\Бухгалтерия" ' папка с файлом

f = "расход.xls" ' имя файла

s = "доходы" ' название листа

a = "D145" ' интересующая нас ячейка

' выполняем загрузку данных из закрытой книги Excel

ЗначениеЯчейки = GetValue(p, f, s, a)

 

Debug.Print ЗначениеЯчейки ' выводим результат в окно Immediate

End Sub


Посмотрите также результат использования этой функции внутри цикла
для получения значений ячеек из списка найденных файлов

Код функции GetValue:

Function GetValue(path, file, sheet, ref)

'Функция GetValue получает в качестве параметров:

' path – путь к закрытому файлу (например, "d:\files");

' file – название рабочей книги (например, "budget.xls");

' sheet – название рабочего листа (например, "Лист1");

' ref – ссылка на ячейку (например, "C4").

If Right(path, 1) <> "\" Then path = path & "\"

 

' проверяем наличие файла по заданному пути

If Dir(path & file) = "" Then GetValue = "Файл не найден": Exit Function

 

' формируем строку запроса

arg$ = "'" & path & "[" & file & "]" & sheet & "'!" & _

Range(ref).Range("A1").Address(, , xlR1C1)

 

' считываем значение из закрытой книги

GetValue = ExecuteExcel4Macro(arg$)

 

' вместо ошибки возвращаем сообщение об ошибке

' к примеру, если лист не найден, или указана несуществующая ячейка

If IsError(GetValue) Then GetValue = "<ошибка>"

End Function

  • 27772 просмотра
Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования