需要帮助使用VBA在Excel中创建用户定义的函数吗
对于以下问题,我完全无法在ExcelVBA中创建用户定义的函数。任何帮助都将不胜感激 我的excel文件如下所示(为了简洁起见,只添加了一小部分): 我想要一个函数来确定:如果A1=Susan或Jill或Sarah,并且B1的LEN(字符串长度)大于1,那么D1=A1/2b1c1或者A1/2c1 因此,D列中的输出如下所示:需要帮助使用VBA在Excel中创建用户定义的函数吗,excel,vba,user-defined-functions,Excel,Vba,User Defined Functions,对于以下问题,我完全无法在ExcelVBA中创建用户定义的函数。任何帮助都将不胜感激 我的excel文件如下所示(为了简洁起见,只添加了一小部分): 我想要一个函数来确定:如果A1=Susan或Jill或Sarah,并且B1的LEN(字符串长度)大于1,那么D1=A1/2b1c1或者A1/2c1 因此,D列中的输出如下所示: A B C D 1 Susan Reagan Smith Susan
A B C D
1 Susan Reagan Smith Susan /2 Reagan Smith
2 Jill L Taylor Jill /2 Taylor
3 Sarah Sullivan Williams Sarah /2 Sullivan Williams
4 Roger J Lopez Roger /2 Lopez
我想使用VBA,因为我有许多名称要添加,而且我不想在单元格D1中使用大量嵌套if语句的大型公式。我自己也一直在做,但它只是一团乱麻,我很不好意思把它贴在这里。谢谢大家 在工作表的其他地方有一个姓名列表
使用
IF(ISNA(MATCH(A1,名称列表,0)),“Not found”,“found”)
判断名称是否被识别。在工作表的其他地方有一个名称列表
Public Function JoinNames(A, B, C)
If FirstNameMatches(A) And Len(B) > 1 Then
JoinNames = A & " /2 " & B & " " & C
Else
JoinNames = A & " /2 " & C
End If
End Function
Private Function FirstNameMatches(N) As Boolean
Select Case N
Case "Susan", "Jill", "Sarah"
FirstNameMatches = True
End Select
End Function
使用IF(ISNA(匹配(A1,名称列表,0)),“未找到”,“已找到”)
确定名称是否可识别
Public Function JoinNames(A, B, C)
If FirstNameMatches(A) And Len(B) > 1 Then
JoinNames = A & " /2 " & B & " " & C
Else
JoinNames = A & " /2 " & C
End If
End Function
Private Function FirstNameMatches(N) As Boolean
Select Case N
Case "Susan", "Jill", "Sarah"
FirstNameMatches = True
End Select
End Function