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

时间:2016-04-07 08:35:24

标签: excel vba excel-vba string-concatenation 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。

3 个答案:

答案 0 :(得分:1)

X必须在“”之间,如:

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

答案 1 :(得分:1)

你正在向我的功能发送X应该是" X"。 VBA将X解释为变量而不是字符串

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

答案 2 :(得分:0)

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

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

使用 + 作为字符串连接运算符,如果将 6 7 传递给原始函数,则会收到 13 ,而不是 67 。使用& ,您将返回 67