Автозаполнение формулы до конца данных VBA - PullRequest
0 голосов
/ 11 октября 2018

Когда я посмотрел 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))

Однако из-за множества "в формуле это не сработает.

Есть предложения?

Спасибо!

1 Ответ

0 голосов
/ 11 октября 2018

Как сказал Marcucciboy2, вы должны удваивать кавычки внутри формулы при использовании 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
...