工作表方法只能从 Microsoft Access 工作一次 (VBA Excel)

Worksheets method only works once (VBA Excel) from Microsoft Access

提问人:Ryan 提问时间:11/7/2023 更新时间:11/7/2023 访问量:65

问:

代码运行完美,直到我再次运行代码。 无论出于何种原因,它只运行一次。之后,我需要重新启动 应用程序使其再次工作。

给出问题的代码 接下来的几行代码:

 With Worksheets("sheet")
         .Range("D3").Value = "000"
         .Range("D4").Value = "111"
         End With
The error is the next one: 

对象“_Global”的方法“工作表”失败

完整代码:

Private Sub Method()
   
Dim objExcel As Excel.Application
Dim objBook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Dim objRange As Excel.Range`
Dim wb As Workbook

For Each wb In Workbooks
wb.Close SaveChanges:=False
Next wb

Set objExcel = New Excel.Application
objExcel.Visible = True
 Set objBook = objExcel.Workbooks.Open("... path to .xlsm")
         objExcel.EnableEvents = True
         With Worksheets("sheet")
         .Range("D3").Value = "000"
         .Range("D4").Value = "111"
         End With
    objExcel.DisplayAlerts = False
    objBook.save
    objExcel.DisplayAlerts = True
    objExcel.Quit
    'Close the objects
    Set objSheet = Nothing
    Set objBook = Nothing
    Set objExcel = Nothing
ExitHere:
    Exit Sub
HandleError:
    MsgBox Err.Description, vbExclamation, "Excel_error " & Err.Number  
End Sub

我尝试搜索类似的症状,但没有找到任何有效的方法。 - 测试后假设它是 objExcel.EnableEvents = True - 提前关闭对象 - 未正确声明变量

我还检查了重写代码的不同方法,并尝试使用工作表而不是工作表。

甚至开始怀疑这是否是我的 Microsoft Access 数据库版本的故障。当前使用的是 2016 版本。

提前感谢您的帮助, 亲切问候

Excel VBA MS-Access

评论

6赞 Kostas K. 11/7/2023
这是一个 Excel 属性,因此您需要引用它才能让 Access 了解它:.With objBook.Worksheets("sheet")
1赞 CDP1802 11/7/2023
尝试添加objBook.CloseobjBook.save

答: 暂无答案