gpt4 book ai didi

vba - Excel 2013 中的 VB6 提取

转载 作者:行者123 更新时间:2023-12-02 17:49:20 30 4
gpt4 key购买 nike

我有一些用旧版 VB6 编写的应用程序,其中内置了提取代码来创建 EXCEL 提取。我们正在从 Excel 2007 迁移到 Excel 2013,我遇到了一些问题。我运行的是 Windows 10。在 2007 年,这是我的声明和 Set 语句,它们曾经工作得很好...

Option Explicit
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheetA As Excel.Worksheet

这些我在模块的顶部。

在我写入要提取的数据的函数中,我这样做...

Set xlApp = New Excel.Application
Set xlBook = XlApp.Workbooks.Add
Set xlSheetA = xlBook.Worksheets.Add

当它到达 XLBook 时 - 它挂断并且一切都停止工作。我收到错误:

This action cannot be completed because the other program is busy. Choose "SwitchTo' to activate the busy program and correct the problem.

现在,在运行提取之前,我要确保 Excel 没有在后台运行,以检查是否进入任务管理器 -> 进程 并删除它(如果是)那里。我究竟做错了什么?我应该如何更改我的代码?

编辑屏幕截图:屏幕截图不显示我的应用程序中的代码。这是一个新项目,只是为了显示我正在使用的所有代码。 code error

最佳答案

您的 function1 位于私有(private)子中,应作为函数调用。您显示的代码和屏幕截图也有所不同。我创建了一个快速示例,它在 Excel 2013 中完美运行。将 sub 更改为 function...

Option Explicit

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheetA As Excel.Worksheet

Private Function function1()

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlSheetA = xlBook.Worksheets.Add

Set xlSheetA = xlBook.Sheets.Item(1) ''the sheet you want to use

xlApp.Visible = True

xlApp.ActiveSheet.Cells(1, 1).Value = "TEST"

xlApp.Workbooks.Close

MsgBox "Excel Done"
End Function

Private Sub Command3_Click()

Call function1
End Sub

希望这有帮助。

编辑:请参见下面的屏幕截图,工作正常...

Open Excel

关于vba - Excel 2013 中的 VB6 提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39355966/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com