gpt4 book ai didi

excel - 使用 FindNext 的 UDF 似乎在没有警告的情况下中止

转载 作者:行者123 更新时间:2023-12-04 22:03:57 24 4
gpt4 key购买 nike

我有以下用户定义的函数,它试图在一个范围内找到第 n 个非空单元格:

Option Explicit

Function finn_prioritert_oppgave(nummer As Long) As String

Dim i As Long, r As Range, c As Range

Set r = Range(PDCA.Range("L9"), PDCA.Range("L1048576").End(xlUp))
i = 1

Set c = r.Find(What:="*", LookIn:=xlValues, LookAt:=xlWhole)

While (Not c Is Nothing) And (Intersect(c, PDCA.Rows(9)) Is Nothing) And (i < nummer)

Debug.Print c
Set c = r.FindNext(c)
Debug.Print c
Debug.Print CBool(c Is Nothing)
i = i + 1

Wend

If c Is Nothing Then
finn_prioritert_oppgave = "#N/A"
Else
finn_prioritert_oppgave = c.Offset(0, -10).Value
End If

End Function

使用 1 作为参数运行它可以正常工作,大概是因为它没有输入 While -循环并点击 FindNext , 但以任何更大的值作为参数运行它会导致调用它的单元格显示 #VALUE! -警报。

看看我的即时窗口中显示的内容也很奇怪,因为两个 Debug.Print执行 FindNext 后的消息不打印,虽然我没有收到任何警报。

我在即时窗口中得到的输出,使用 2 作为参数调用的 UDF 只是一个 x:

enter image description here
调用函数的区域类似于 this (第一行是以 1 作为参数调用的 UDF,第二行是以 2 作为参数调用的 UDF),而包含数据的区域看起来像 this .

所以我想知道的是,为什么 FindNext找不到范围内的第二个非空单元格,为什么函数在没有任何警告的情况下中止?

最佳答案

FindNext在 UDF 中不起作用。您必须简单地重复原始 Find手术。

关于excel - 使用 FindNext 的 UDF 似乎在没有警告的情况下中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com