【问题标题】:Save changes in an Excel spreadsheet that were made using MS Access VBA将使用 MS Access VBA 所做的更改保存在 Excel 电子表格中
【发布时间】:2020-02-20 00:33:55
【问题描述】:

在我的数据库中,我有一个 VBA 脚本,它打开一个 Excel 电子表格并删除第一行,因此新的第一行是标题行。

当我在 Access VBA 中保存文件并在 Excel 中打开文件时,什么都没有。

如果我重新导入电子表格,数据是可见的。

我更改了我的脚本,如果我不保存更改,文件就可以了。如果我保存更改,则会出现此问题。

dim sheetpath as string
dim xl as excel.application
dim xlbook as excel.workbook
dim xlsheet as excel.worksheet

sheetpath = "c:\users\me\export.xlsx"

set xl = createobject("Excel.Application")
set xlbook = GetObject(sheetpath)

xl.visible = true
set xlsheet = xlbook.Worksheets(1)

If xlsheet.Range("a1").mergecells = true then
    xlsheet.cells.unmerge
end if

if xlsheet.range("a1") = "Values" then
    xlsheet.rows(1).delete
end if

xlbook.close savechanges:=true
xl.application.qit
set xl = nothing
set xlbook = nothing
set xlsheet = nothing

【问题讨论】:

    标签: excel vba ms-access


    【解决方案1】:

    尝试重新启动。

    但在此之前,请检查任务管理器/进程资源管理器,如果您有多个 Excel 进程仍在运行。

    代替

    set xl = createobject("Excel.Application")
    set xlbook = GetObject(sheetpath)
    

    Set xlbook = GetObject(sheetpath)
    Set xl = xlbook.Application
    

    这是什么?

    xl.application.qit
    

    应该是

    xl.Quit
    

    并以正确的顺序从下到上清除您的引用:

    set xlsheet = nothing
    set xlbook = nothing
    set xl = nothing
    

    【讨论】:

    • 还是不行。我检查了任务管理器并重新启动并应用了您建议的设置。
    • 另外,我决定在 Excel 中打开 VBA 编辑器并打开文件。它会在工作表的 VBA 编辑器中看到正确的选项卡。让我再重申一遍,昨天运行良好。
    猜你喜欢
    • 1970-01-01
    • 2014-03-19
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多