excel – 在执行时使用UDF在单元格中写入内容

我正在编写一个UDF,它通过多次尝试从网站获取数据,因此可能需要一段时间(10秒钟)来计算.问题是Excel冻结,直到完全计算UDF.

我想在调用单元格中编写“检索数据…”,同时下载和处理数据而不挂起Excel.一旦函数结束,将文本更改为结果.

这可以实现吗?

最佳答案
在公共模块代码表中假设以下UDF.

Function retrievingData()
    Dim i As Long, t As Double
    For i = 1 To 2
        'Debug.Print i
        t = Now + TimeSerial(0, 0, 2)
        Do While Now < t
            DoEvents
        Loop
    Next i
    retrievingData = 99
End Function

接下来,根据以下公式在A2中创建条件格式设置规则.

=not(a2)

单击格式并指定自定义数字格式,

"Retrieving data..."

最后,将UDF放入A2.

=retrievingData()

警告:您可能需要多个DoEvents循环才能使您自己的UDF正常运行.每一个都会减慢速度.

enter image description here

转载注明原文:excel – 在执行时使用UDF在单元格中写入内容 - 代码日志