需要使用VBA在Excel中创build用户定义的函数

我完全坚持在Excel VBA中为以下问题创build用户定义的函数。 任何帮助将不胜感激。

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

ABCD 1 Susan Reagan Smith 2 Jill L Taylor 3 Sarah Sullivan Williams 4 Roger J Lopez 

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

所以D列中的输出将如下所示:

  ABCD 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,因为我有很多名称要添加,并不真正想要在嵌套的if语句很多的D1单元格中的一个巨大的公式。 我一直在自己的工作,但它只是一团糟,我很尴尬的发布在这里。 多谢你们!

 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(MATCH(A1, list_of_names, 0)), "Not found", "Found")来确定名字是否被识别。