В настоящее время я работаю над разработкой макроса, который будет вводить различные формы в базу данных доступа.
Из-за природы этой программы мне пришлось разделить основную программу на две подпрограммы и вызывать их, но теперь мне нужно использовать getobject для двойного вызова пути к файлу.
Я использую getobject, чтобы открыть файл, а затем использую myrec.fields (~ имя столбца ~) = xlsht.cells (1, "a") для заполнения различных значений столбцов.Я не уверен, есть ли другие «эффективные» способы сделать это.
Мне было интересно, можно ли использовать переменную вместо пути к файлу с помощью команды GetObject вместо необходимости вручную заменятьПуть к файлу в коде.
Я протестировал довольно много различного кода, включая путь, функциональность класса, но я не думаю, что понимаю VBA достаточно, чтобы действительно использовать это наилучшим образом.
Я могу заставить это работать, используя это
Dim XL As Variant
Dim XLApp As Variant
Dim XLsht As Variant
Dim XLwrkbk As Variant
Set XL = CreateObject("Excel.Application")
Set XLwrkbk = GetObject(~file path~)
Set XLsht = XLwrkbk.Worksheets(1)
Set MyRec = CurrentDb.OpenRecordset("database name")
В идеале я хотел бы, чтобы это было
Dim filename As String
Dim XL As Variant
Dim XLApp As Variant
Dim XLsht As Variant
Dim XLwrkbk As Variant
filename = " ~insert file path~ "
Set XL = CreateObject("Excel.Application")
Set XLwrkbk = GetObject(filename)
Set XLsht = XLwrkbk.Worksheets(1)
Set MyRec = CurrentDb.OpenRecordset("database name")
Я получаю ошибку времени выполнения
Ошибка времени выполнения '5': неверный вызов процедуры или аргумент.