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

Posted

技术标签:

【中文标题】无法在 UDF 的单元格中写入字符串【英文标题】:Can't write string in a cell from 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。

【问题讨论】:

【参考方案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

【讨论】:

以上是关于无法在 UDF 的单元格中写入字符串的主要内容,如果未能解决你的问题,请参考以下文章

JAVA如何向指定的EXCEL单元格中写入数据??

如何使用`openpyxl`库在Excel中的合并单元格中写入?

当点击单元格上的按钮时,将信息写入单元格中

使用 Evaluate 写入其他单元格的 UDF 是不可预测的

如何用java向指定的EXCEL单元格中写入数据?

用于识别 Excel 单元格格式模式的 UDF(用户定义函数)