【问题标题】:Can't write string in a cell from UDF无法在 UDF 的单元格中写入字符串
【发布时间】:2016-04-07 08:35:23
【问题描述】:
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。

【问题讨论】:

    标签: vba excel string-concatenation udf


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      X 必须在“”之间,例如:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2012-07-19
          • 2015-02-15
          • 1970-01-01
          • 2015-11-28
          • 1970-01-01
          • 1970-01-01
          • 2021-11-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多