在自定义函数中使用Application.StatusBar时,状态栏不会更新

我有一个我写的自定义函数(UDF),有时需要一段时间才能运行。 工作表被设置为只能手动刷新。 我希望在状态栏中显示进度,只要函数运行以便看到它的运行。

问题是,在函数内,Application.StatusBar似乎不起作用。 在潜艇内,我可以让它工作得很好(例如, 这是有效的 ),但在function它只是没有。 我已经逐行运行了代码,但状态栏仍然不会更新,并且不会引发错误。

有什么可以防止function与状态栏的工作?

我在Win10上运行Excel 2016。

编辑:这是实际的显示代码,从周围的编程的上下文:

Function getCost(parameters) dim variables dim bOldStatusBar as Boolean <web query begins> bOldStatusBar = Application.DisplayStatusBar Application.DisplayStatusBar = True Application.StatusBar = "Calculating prices between " & Origin & " and " & Destination & "." DoEvents <clicking buttons in IE> Application.StatusBar = "Starting Data Import..." <clicking buttons in IE> Application.StatusBar = "Macro 20% Complete" etc... <clicking buttons in IE> Application.StatusBar = "Macro 100% Complete" Application.StatusBar = False Application.DisplayStatusBar = bOldStatusBar End Function 

更新状态栏后,只需添加DoEvents即可