通过Microsoft Visual Basic 6.0调试Excel宏

时间:2014-01-08 20:45:23

标签: excel debugging excel-vba vb6 breakpoints vba

我有VB6代码,可以执行各种Excel宏。我在VB6和Excel宏中设置了断点,然后在VB6应用程序中开始调试。当它到达(断点)执行宏的语句时,它跳过命令并继续遍历我的VB6代码。我期待它跳转到Excel并开始调试Excel宏。是否有一些配置或技巧来调试从VB6应用程序调用的Excel宏?

1 个答案:

答案 0 :(得分:0)

当VB6执行自己的代码时,它允许程序员使用IDE设置断点,并在执行到达那些断点时为用户提供控制。但是,只有当您(程序员)从Excel界面执行宏时,在Excel中设置断点才会对您有所帮助。当VB6负责启动Excel并告诉它在工作簿中执行宏时,情况并非如此。

以下是您可以做的事情:

将所有宏代码迁移到VB6。这很简单,你只需要在这里和那里添加几个单词

'In Excel macro:
Activecell.Offset(0,1).Value = "my value"

所以如果我们想将这一行宏迁移到VB6:

'In VB6 you must declare an instance of EXCEL application:

Dim EX as Excel.Application
EX.Workbooks.Open('c:\my_excel_file.xls')
EX.Sheets(0).Activate  'Go to the first sheet

'Then you are back to business:

EX.ActiveCell.Offset(0,1).Value = "my vlaue"

'But don't forget to close and dispose of EX instance afterwards.

EX.Activeworkbook.Close  'Check save options
EX.Quit
Set EX = Nothing

将所有宏功能迁移到VB6之后,可以在VB6中设置断点,并且可以完全控制执行,并且可以按照您的意图调试代码。