我有VB6代码,可以执行各种Excel宏。我在VB6和Excel宏中设置了断点,然后在VB6应用程序中开始调试。当它到达(断点)执行宏的语句时,它跳过命令并继续遍历我的VB6代码。我期待它跳转到Excel并开始调试Excel宏。是否有一些配置或技巧来调试从VB6应用程序调用的Excel宏?
答案 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中设置断点,并且可以完全控制执行,并且可以按照您的意图调试代码。