我在 Windows 10 上的 MS Access 2013 中工作,我只是想编写一个 Sub 来打开磁盘上的 Excel 文件,更改列格式和一些列,保存并退出。Sub 运行并按预期执行,但问题是即使在 .Quit 命令之后,“EXCEL.EXE”也会继续运行,随后对该 Sub 的调用将导致运行时错误。如果我在运行子程序后关闭 Access,任务管理器上的“EXCEL.EXE”会消失,但如果我执行“压缩和修复”数据库,则不会。
我已经完成了另一个 Sub ,它只是在磁盘上打开一个 Excel 文件并将所有列的宽度更改为“自动宽度”,然后关闭,它工作正常并且不会让“EXCEL.EXE”运行。
我究竟做错了什么?是否可以在 VBA 中确保“EXCEL.EXE”正确退出?
我在 Dims 和 Sets to Nothing、Workbook Closes 等上尝试了很多不同的行顺序。 另外,我在这里和其他网站上搜索了如何解决这个问题,但 2 小时后我看到的唯一建议是使用 VBA ThisWorkbook.Saved = True 之类的东西,但我在 .Quit 之前和之后都尝试过,但没有效果。除此之外,我只找到 VB.NET 或其他我不使用的环境的解决方案,现在几乎没有。
感谢您阅读本文。
代码如下:
Sub changeXLcolumnFormatting()
Dim XL As Object
Set XL = CreateObject("Excel.Application")
XL.Visible = False
XL.DisplayAlerts = False
XL.Workbooks.Open "C:\Users\640344\Desktop\rawDataTest.XLSX"
Dim sht As Worksheet
With XL
Set sht = ActiveWorkbook.Worksheets(1)
Dim rng As Range …Run Code Online (Sandbox Code Playgroud)