簡體   English   中英

如何將Excel公式轉換為UDF?

[英]How to turn an Excel formula into a UDF?

我有一個公式,可以在格式為“ Smith,John”的單元格中將姓氏與名字互換。

=MID(A4&" "&A4,(FIND(" ",A4)+1),(LEN(A4)-1))

我創建了一個函數來利用此功能,並且起初似乎很有效。 該函數是:

Function SwapNames(text As String) As String SwapNames = Mid(text & " " & text, (Find(" ", text) - 1, (Len(text) - 1)) End Function

我將工作簿轉換為加載項文件類型,因此可以全局使用它,現在它說Find函數未定義。 我在這里做錯了什么?

就像@Nathan_Sav所說的-使用split,也許是一個可選參數來標識定界符。

因此, =swapnames("Bartrup-Cook Darren")返回“ Darren Bartrup-Cook”,而=swapnames("Bartrup-Cook Darren","-")返回“ Cook Darren Bartrup” #REF! 如果字符串中不存在定界符,則返回錯誤。

Function SwapNames(text As String, Optional Delimiter As String = " ") As Variant

    Dim SplitAt As Long
    Dim NamePart As Variant

    SplitAt = InStr(text, Delimiter)

    If SplitAt = 0 Then
        SwapNames = CVErr(xlErrRef)
    Else
        NamePart = Split(text, Delimiter)

        SwapNames = NamePart(1) & " " & NamePart(0)
    End If

End Function

這是您可以使用Split功能和交換名稱的方法。

Function SwapNames(text As String) As String
    SwapNames = Trim(Split(text, ",")(1)) & " " & Trim(Split(text, ",")(0))
End Function

因此它將把Smith, John更改為John SmithSmith, John J更改為John J Smith

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM