需要帮助在Excel中使用VBA创建用户定义的函数

时间:2011-04-08 15:25:54

标签: excel vba user-defined-functions

我完全停留在Excel VBA中创建用户定义的函数以解决以下问题。任何帮助将不胜感激。

我的excel文件看起来像这样(为了简洁起见,只添加了一小部分):

       A          B          C          D
1     Susan     Reagan     Smith         
2     Jill        L        Taylor
3     Sarah     Sullivan   Williams
4     Roger       J        Lopez

我想要一个函数来确定:如果A1 = Susan或Jill OR Sarah,AND LEN(字符串的长度)B1> 1那么D1 = A1 / 2 B1 C1 ELSE A1 / 2 C1

因此D列的输出如下:

       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语句的大型公式。我自己一直在努力,但这只是一团糟,我不好意思在这里发布它。谢谢你们!

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

在工作表上的其他位置列出名称。

使用IF(ISNA(MATCH(A1, list_of_names, 0)), "Not found", "Found")确定名称是否被识别。