Excel 2013 年 VB6 提取
VB6 extracts in Excel 2013
我有一些使用遗留 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 不在后台 运行ning,为了检查我去 任务管理器 -> processes 并删除它(如果存在)。我究竟做错了什么?我应该如何更改我的代码?
编辑屏幕截图:屏幕截图不显示我的应用程序中的代码。这是一个新项目,只是为了展示我正在使用的所有代码。
很久以前我遇到过类似的问题。不确定这是否与您的情况有关。
我的代码正在更新一个打开的 excel,其中有一个处于编辑模式的单元格。在尝试了多种可能性之后,我关闭了屏幕更新和可见性,直到代码完成。就像是
xlApp.ScreenUpdating = 假
xlApp.Visible = 假
您的 function1 在私有 sub 中,应作为函数调用。您显示的代码和屏幕截图也不同。我创建了一个快速示例,它在 Excel 2013 年完美运行。将 sub 更改为函数...
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
希望对您有所帮助。
编辑:见下面的截图,工作正常...
我有一些使用遗留 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 不在后台 运行ning,为了检查我去 任务管理器 -> processes 并删除它(如果存在)。我究竟做错了什么?我应该如何更改我的代码?
编辑屏幕截图:屏幕截图不显示我的应用程序中的代码。这是一个新项目,只是为了展示我正在使用的所有代码。
很久以前我遇到过类似的问题。不确定这是否与您的情况有关。 我的代码正在更新一个打开的 excel,其中有一个处于编辑模式的单元格。在尝试了多种可能性之后,我关闭了屏幕更新和可见性,直到代码完成。就像是 xlApp.ScreenUpdating = 假 xlApp.Visible = 假
您的 function1 在私有 sub 中,应作为函数调用。您显示的代码和屏幕截图也不同。我创建了一个快速示例,它在 Excel 2013 年完美运行。将 sub 更改为函数...
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
希望对您有所帮助。
编辑:见下面的截图,工作正常...