【发布时间】:2020-07-15 18:22:56
【问题描述】:
我目前正在开发一个宏,可以将各种表单输入到 access 数据库中。
由于这个程序野兽的性质,我不得不将我的主程序分成两个子程序并调用它们,但是我现在需要使用 getobject 调用文件路径两次。
我使用 getobject 打开一个文件,然后使用 myrec.fields(~column name~) = 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”: 无效的过程调用或参数。
【问题讨论】: