我一直在努力找出这里出了什么问题。我有两个包含字符串值的列。我使用第三列在工作表中调用 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/