【问题标题】:Formula with quotes into cell using VBA throws error使用 VBA 在单元格中加上引号的公式会引发错误
【发布时间】:2018-03-23 20:27:05
【问题描述】:

我有一个代码,它连接 A 和 B 列中的值。当我想在 A 和 B 之间添加一个空格时,这是一个 Excel 公式 =CONCATENATE(A4," ",B4)=A4 & " " & B4 使用 VBA 时,宏会将其标记为错误:

With ws3.Range("E4:E" & LastRow3)
    .Formula = "=A4&B4"
End With

【问题讨论】:

    标签: vba excel excel-formula


    【解决方案1】:

    引号内的引号需要加倍

    .Formula = "=A4 & "" "" & B4"
    

    这将导致=A4 & " " & B4 作为一个公式。

    【讨论】:

      【解决方案2】:

      这似乎有效:

      Sub jhgfd()
          Set ws3 = ActiveSheet
          LastRow3 = 10
      
          With ws3.Range("E4:E" & LastRow3)
              .Formula = "=A4 & CHAR(32) & B4"
          End With
      End Sub
      

      【讨论】:

        【解决方案3】:

        将公式从 Excel“翻译”到 VBA 可能是人们在 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

        【讨论】:

          【解决方案4】:

          您也可以这样做:

          For i = 4 to LastRow3
              Cells(i, 5).Value = Cells(i, 1).Value & " " & Cells(i, 2).Value
          Next
          

          这是一个简单的循环,它遍历第五 (E) 列、4 和 LastRow3 之间的行,并将该单元格的值设置为连接在同一行中的 A 和 B 列。

          【讨论】:

          • 谢谢你,米哈尔!
          • @BatyrNazarov 如果它对你有帮助,你应该接受答案(可选投票)。
          • @BatyrNazarov 参考:How does accepting an answer work?
          • 谢谢。所以这是一个需要点击的勾号,然后它变成绿色))谢谢)
          猜你喜欢
          • 2015-01-09
          • 2020-01-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-30
          • 1970-01-01
          • 2017-02-05
          • 1970-01-01
          相关资源
          最近更新 更多