无法在UDF的单元格中写入string

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到myfunction它应该是“X”。 VBA将X解释为variables而不是string

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

X必须介于“”之间,如:

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

使用和号(例如 )显式string连接。 虽然由于VBA的开销可以使用加号(例如+ ),并且它是跨平台兼容性的尝试,但是加号的主要操作符是math加法,而不是string连接,如果可能的话,它将select加两个数字。

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

使用+作为string连接运算符,如果将67传递给原始函数,则会得到13 ,而不是67 。 随着你的回报67