Получение данных из закрытой книги 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
|