我有一个代码,它连接A和B列中的值。当我想在A和B之间添加一个空格,这是一个Excel公式
=CONCATENATE(A4," ",B4)
或=A4 & " " & B4
使用VBA时,宏会将其标记为错误:
With ws3.Range("E4:E" & LastRow3)
.Formula = "=A4&B4"
End With
答案 0 :(得分:3)
引号内的引号需要加倍
.Formula = "=A4 & "" "" & B4"
这将导致=A4 & " " & B4
作为公式。
答案 1 :(得分:3)
这似乎有效:
Sub jhgfd()
Set ws3 = ActiveSheet
LastRow3 = 10
With ws3.Range("E4:E" & LastRow3)
.Formula = "=A4 & CHAR(32) & B4"
End With
End Sub
答案 2 :(得分:1)
将公式从Excel“翻译”到VBA可能是一个人在VBA中必须做的最受欢迎的任务。这是一个算法:
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
。
答案 3 :(得分:0)
你可以这样做:
For i = 4 to LastRow3
Cells(i, 5).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
Next
这是一个简单的循环,循环遍历第五(E)列,4和LastRow3
之间的行,并将此单元格的值设置为相同行中的连接A和B列。