Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将公式自动填充到数据末尾VBA_Excel_Vba_Concatenation_Formula_Autofill - Fatal编程技术网

Excel 将公式自动填充到数据末尾VBA

Excel 将公式自动填充到数据末尾VBA,excel,vba,concatenation,formula,autofill,Excel,Vba,Concatenation,Formula,Autofill,当我查找VBA以将公式自动填充到工作簿中所有工作表的数据末尾时,我发现了以下内容: Sub FillFormula() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Range("Q2").Formula = "=CONCATENATE(A2,B2,C2)" ws.Range("Q2", "Q" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown Next End

当我查找VBA以将公式自动填充到工作簿中所有工作表的数据末尾时,我发现了以下内容:

Sub FillFormula()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("Q2").Formula = "=CONCATENATE(A2,B2,C2)"
ws.Range("Q2", "Q" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
Next
End Sub
这很好,但不符合我的公式。我需要它来处理这个公式:

=CONCATENATE(A2,CHAR(10),"Serving:"," ", O2,CHAR(10),"Contact:"," ", B2," ", C2,CHAR(10), F2, ",", " ", G2, " ",H2,CHAR(10), I2,",", " ", J2, " ",K2,CHAR(10),"Phone:"," ",L2,CHAR(10), "Fax:"," ",M2,CHAR(10), "Email:", " ", D2,CHAR(10),"Website:", " ", N2,CHAR(10),P2,CHAR(10)," ",CHAR(10))
然而,由于公式中有许多“错误”,它将不起作用

有什么建议吗


谢谢!

正如Marccucciboy2所说,在使用VBA时,公式中的引号必须加倍:

Sub FillFormula()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Range("Q2").Formula = "=CONCATENATE(A2,CHAR(10),""Serving:"","" "", O2,CHAR(10),""Contact:"","" "", B2,"" "", C2,CHAR(10), F2, "","", "" "", G2, "" "",H2,CHAR(10), I2,"","", "" "", J2, "" "",K2,CHAR(10),""Phone:"","" "",L2,CHAR(10), ""Fax:"","" "",M2,CHAR(10), ""Email:"", "" "", D2,CHAR(10),""Website:"", "" "", N2,CHAR(10),P2,CHAR(10),"" "",CHAR(10))"
ws.Range("Q2", "Q" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
Next
End Sub

你必须从一个像
“=CONC…
这样的引号开始,然后在引号上加上三个引号,才能显式地将引号添加到它
哇,它实际上是双引号而不是三个引号为什么不使用CHAR(34)?