gpt4 book ai didi

function - 调用 UDF 时公式中使用的值的数据类型错误

转载 作者:行者123 更新时间:2023-12-03 01:08:07 24 4
gpt4 key购买 nike

我一直在努力找出这里出了什么问题。我有两个包含字符串值的列。我使用第三列在工作表中调用 UDF,但最终得到 #Value 并出现错误 - “公式中使用的值的数据类型错误”。

例如:

 Col I   Col J
File1 Y
File1 N
File2 Y
File3 N

我尝试对其进行调试,并且输入值已很好地传递到函数变量中。我对VBA的了解有限,希望大家能帮助我解决这个问题。

工作表中调用的函数:

=FileCheck(I3,I3:J38)

代码:

Public Function FileCheck(V As Range, Q As Range) As String
Dim vtest As Variant
Dim i, j, stat As Integer

stat = 0

vtest = Q

For i = 1 To UBound(vtest)
If V = vtest(i, 1) And vtest(i, 2) = "N" Then

For j = 1 To UBound(vtest)
If V = vtest(j, 1) And vtest(j, 2) = "Y" Then

FileCheck = "Y"
stat = 1
End If
Next
If stat = 0 Then
FileCheck = "N"
End
Else: End
End If


ElseIf V = vtest(i, 1) And vtest(i, 2) = "Y" Then
FileCheck = "Y"
End If
Next

End Function

最佳答案

您收到该错误是因为您使用的是 End

当您想关闭计算机时,您是点击开始菜单~~>关机还是直接拔掉电源线? :-)

使用End与拉动电缆非常相似。不要使用End。优雅地退出该函数。 End 语句基本上是一种使程序崩溃的方法,但不显示任何错误消息。

试试这个。替换这些行

If stat = 0 Then
FileCheck = "N"
End
Else: End
End If

If stat = 0 Then FileCheck = "N"
Exit Function

编辑

顺便说一句,您是否想在Col J中查找Col I的对应值?如果是,那么您不需要为此使用 UDF。您可以使用Vlookup()

使用此公式 =VLOOKUP(I3,I3:J38,2,0) 而不是 =FileCheck(I3,I3:J38)

关于function - 调用 UDF 时公式中使用的值的数据类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460039/

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