通过Microsoft Visual Basic 6.0debuggingExcelmacros

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

当VB6执行自己的代码时,它允许程序员使用IDE来设置断点,并在执行达到那些断点时给予用户控制权。 但是,如果您(程序员)从Excel界面执行macros,则在Excel中设置断点只会对您有利。 当VB6负责启动Excel并告诉它执行工作簿中的macros时,情况并非如此。

以下是你可以做的事情:

将所有macros代码迁移到VB6。 这很容易,你只需要在这里和那里添加几个字就可以了

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

所以如果我们想把这行macros迁移到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 

将所有macrosfunction迁移到VB6之后,您可以在VB6中设置断点,您将拥有对执行的所有控制权,并且可以按照您的意图进行debugging。

Interesting Posts