运行外部DLL后,VBA无法进入中断模式

时间:2014-05-19 15:53:22

标签: vba excel-vba dll excel

我编写了一个DLL,并在Excel VBA中使用了它的一些功能。我在调用DLL之后插入了一个断点。当它到达那里时,我收到错误“此时无法进入中断模式”。代码是:

Public tester As Finance.Root

Sub testing()
   Set tester = New Finance.Root
   Set aa = Sheets(1).Range("A1")
   Call tester.startUp(aa)
   MsgBox ("HI")
End Sub

正在调用的DLL的第一部分是:

Sub startUp(excelLink)
   Set MB = excelLink.Application.ActiveWorkbook
   Set oExcel = excelLink.Application
   oExcel.DisplayAlerts = False
   Call fillGlobals
   MB.Sheets.Add Type:=appPath & "\scripts\TestGLPage.xls"
   Set HP = MB.Sheets("Home Page")
   For Each sht In MB.Sheets
       If sht.Name <> HP.Name Then sht.Delete
   Next sht
   WhichGL.Show 1
End Sub

编辑:我在运行DLL后添加了一个msgbox(请参阅更新的代码),并弹出消息框。在消息框之后,我收到错误消息“无法进入中断模式”。这让我相信它与运行DLL无关。我会收到该错误消息的任何其他原因? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

看起来似乎(在谷歌搜索一段时间后)是由于DLL在执行期间删除了纸张而无法进入中断模式。似乎删除工作表是导致不进入中断模式的原因。似乎没有人解释这个原因。

如果有人为此做了解决方法,我会很高兴。我在大型项目中添加和删除工作表。