Доброго времени суток.
Я уже более полугода программирую в VBA Access и Excel, однако совсем недавно получил задание, справится с которым не могу.
Суть проблемы в следующем:
Есть база Access. Есть книга Excel. В книге Excel очень много формул разного рода, сложных макросов - в сумме файл без данных весит около 5 метров, что, в принципе, не мало. Один из макросов представляет собой форму, на которой есть поле для ввода названия, и кнопка, на которую затем нужно нажать. Вводить данные надо много раз, соответственно несколько раз вызывать макрос, вводить информацию в поле, и нажимать на кнопку. Информация берется из базы данных Access. Этот процесс и нужно автоматизировать.
Самое интересное заключается в том, что информация, которая должна вводится в форму макроса, расчитывается в Access, поэтому изначально пользователь открывает базу Access, производит там ряд действий, а затем получает данные, которые и должны быть занесены в Excel. Поэтому управление должно происходить из Access - это аксиома.
В итоге получаем следующую картину:
Из Access вызываем Excel, запускаем программно макрос - и программно же(!) вводим данные из Access в поле, и программно же(!) жмем на кнопку. Снова вызываем макрос и т.д.
Но. Вещи вроде
With Workbooks("C:\РабочаяПапка\ФайлExcel.xls").VBProject.VBComponents("НазваниеМакроса")
.Properties("Combobox1").Value = "Информация1"
End With
не работают. "Subscipt out of range".
Но тут же работает
Workbooks.Open FileName:="C:\РабочаяПапка\ФайлExcel.xls"
Да и даже если бы первый вариант работал, то непонятно, как, используя его, нажать на кнопку.
Короче, как быть - не могу сообразить. Инет перерыл вдоль и поперек - больше ничего подходящего найти не могу. Спасите!