我正在运行加载加载项(我开发的)的32位Excel 2010(Windows 10.1)。我需要从VBA调用其中一个加载项函数(我将其称为changeText
)。
我在其中一个工作表后写了以下VBA代码:
Sub MakeChange()
Dim result As String
result = Application.Run("changeText", "teststring")
Debug.Print result
Debug.Print "Complete"
End Sub
并将此Sub分配给该工作表上的按钮。
如果我直接从VBA编辑器中运行此函数,它每次都可以正常工作,并将正确的结果返回到Debug窗口。
如果我通过按下按钮从Excel中调用该功能,则第一次出现类型不匹配错误(通过消息框)。如果我再次按下按钮,一切都会挂起,唯一的出路就是杀死这个过程。
如果我将函数移动到工作簿级模块,或多或少发生相同的事情 - 我在Application.Run
行上遇到类型不匹配错误,我点击'结束',然后再次相同第二次点击,但这次按下'结束'后应用程序挂起。
加载项已经成熟,当从Excel中直接调用或由加载项调用时,被调用的函数可以正常工作。被调用的XLL函数接受一个字符串并返回一个字符串。
有没有人知道这里会发生什么,特别是应用程序崩溃的原因?