以下是我的一段代码,用于连接A列和B列的值。当我想在A和B之间添加一个空格时,采用Excel公式=CONCATENATE(A4," ",B4)
或 =A4 & " " & B4
,但使用VBA时宏会标记为错误:
With ws3.Range("E4:E" & LastRow3)
.Formula = "=A4&B4"
End With
以下是我的一段代码,用于连接A列和B列的值。当我想在A和B之间添加一个空格时,采用Excel公式=CONCATENATE(A4," ",B4)
或 =A4 & " " & B4
,但使用VBA时宏会标记为错误:
With ws3.Range("E4:E" & LastRow3)
.Formula = "=A4&B4"
End With
引用内的引用需要加倍
.Formula = "=A4 & "" "" & B4"
这将导致=A4 & " " & B4
成为一个公式。
Sub jhgfd()
Set ws3 = ActiveSheet
LastRow3 = 10
With ws3.Range("E4:E" & LastRow3)
.Formula = "=A4 & CHAR(32) & B4"
End With
End Sub
在VBA中,将Excel公式进行翻译可能是最常见的任务。以下是一种算法:
Public Sub PrintMeUsefulFormula()
Dim strFormula As String
Dim strParenth As String
strParenth = """"
strFormula = Selection.Formula
strFormula = Replace(strFormula, """", """""")
strFormula = strParenth & strFormula & strParenth
Debug.Print strFormula
End Sub
如果您使用=CONCATENATE(A4," ",B4)
按照这些步骤操作,它会打印出"=CONCATENATE(A4,"" "",B4)"
如果您正在使用本地的Excel公式,例如俄语版的Excel,其中=CONCATENATE()
是=СЦЕПИТЬ()
,为了获取本地公式的打印,您应该写Selection.FormulaLocal
而不是Selection.Formula
。
For i = 4 to LastRow3
Cells(i, 5).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
Next
这是一个简单的循环,它遍历第五列(E),行从4到LastRow3
,并将该单元格的值设置为同一行中连接的A和B列。