Как вставить формулу в ячейку, если формула меняется с увеличением строки? - PullRequest
4 голосов
/ 22 августа 2011

Я ввел эти формулы во второй строке столбца Pth:

=(COUNTIF(A$1:A1,A2)=0)+(COUNTIF(B$1:B1,B2)=0)+(COUNTIF(F$1:F1,F2)=0)

Когда я перетаскиваю его в третий ряд столбца Pth, это выглядит так:

 =(COUNTIF(A$1:A2,A3)=0)+(COUNTIF(B$1:B2,B3)=0)+(COUNTIF(F$1:F2,F3)=0)

Это то, что я делаю вручную. Как мне сделать это с помощью VBA? Я попытался способом ниже.

cells(Count,"M").formula= "=(COUNTIF(A$1:A1,A2)=0)+(COUNTIF(B$1:B1,B2)=0)+(COUNTIF(F$1:F1,F2)=0)"

Но это не работает. Это не меняется с

"=(COUNTIF(A$1:A1,A2)=0)+(COUNTIF(B$1:B1,B2)=0)+(COUNTIF(F$1:F1,F2)=0)" 

до

"=(COUNTIF(A$1:A2,A3)=0)+(COUNTIF(B$1:B2,B3)=0)+(COUNTIF(F$1:F2,F3)=0)"

Как вставить формулу в ячейку, если формула постоянно изменяется с увеличением строки?

Ответы [ 2 ]

5 голосов
/ 22 августа 2011

Вы можете сделать это в одной строке:

range("P2").Copy Destination:=range("P3:P10")

Нет необходимости в переменных, циклах, чем угодно!

2 голосов
/ 22 августа 2011

По предложению Джубарка

Cells(2, "P").Copy
For Row = 3 To 10
     Cells(Row, "P").Select
     ActiveSheet.Paste
 Next Row
...