无法在 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
使用 + 作为字符串连接运算符,如果您将 6 和 7 传递给原始函数,您将收到 13,而不是 67。使用 & 您返回 67。
【讨论】:
以上是关于无法在 UDF 的单元格中写入字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何使用`openpyxl`库在Excel中的合并单元格中写入?