无法在 UDF 的单元格中写入字符串

Can't write string in a cell from UDF

Sub Makro()

    Dim a As String
    Dim b As String

    Cells(1, 1).Value = myfunction(X, X)

    If Range("A1") = "XX" Then

        MsgBox "True"
    Else

        MsgBox "False"

    End If

End Sub

Function myfunction(a, b) As String

    myfunction = a + b

End Function

"A1" 单元格值等于 0。它必须是 XX。

X 必须在 " " 之间,例如:

Cells(1, 1).Value = myfunction("X", "X")

您正在将 X 发送到 myfunction,它应该是 "X"。 VBA 将 X 解释为变量而不是字符串

单元格(1, 1).Value = myfunction("X", "X")

使用符号(例如 &)进行显式字符串连接。虽然加号(例如 +)由于 VBA 的开销而可以使用,并且它试图实现跨平台兼容性,但加号的主要运算符是数学加法,不是字符串连接,如果可以的话,它会选择添加两位数字。

Function myfunction(a, b) As String
    myfunction = a & b
End Function

使用+作为字符串连接运算符,如果你通过了67进入原始函数,您将收到 13,而不是 67。有了&你return67.