使用vba在单元格中编写公式

我的基本公式是: =IF(COUNTIF($A:$A,$A2)=COUNTIFS($A:$A,$A2,$B:$B,$B2),"OK","NOT OK")

我用它来知道列A中是否有重复,并检查B中的值。

 ID Age My formula 1 15 NOT OK 2 50 OK 2 50 OK 3 35 OK 1 15 NOT OK 1 16 NOT OK 

现在我想用VBA写它,所以我录制一个macros,select单元格,按F2然后按Enter键。 我得到:

 ActiveCell.FormulaR1C1 = _ "=IF(COUNTIF(C3,RC[-10])=COUNTIFS(C3,RC[-10],C12,RC[-1]),""PRODUIT"",""ARTICLE"")" 

好的,它的工作。 现在我想用一个新的列来使用这个公式:

 Id Age Age formula Money Money formula Value3 Value3 formula ... 1 15 NOT OK 150 OK ... ... 2 50 OK 5 NOT OK ... 2 50 OK 800 NOT OK 3 35 OK 80 OK 1 15 NOT OK 150 OK 1 16 NOT OK 150 OK 

我知道如何使用公式“手工”,我知道如何使用它在vba中的单个单元格,但我不知道在循环中使用它。 (我必须使用25 +列的公式,这就是为什么我需要循环和variables)

对不起,我的英语不好,提前致谢

你只需要编辑25中的For r = 2 To 25到你想要用公式填充的最后一行。

码:

 'Loops throug the rows For r = 2 To 25 'Loops throug the columns For c = 13 To 69 Step 2 'Converts the column-index into the column-letter Dim col As String col = Split(Cells(r, c - 1).Address(True, False), "$")(0) 'Writes the formula into the cell Cells(r, c).Formula = "=IF(COUNTIF($C:$C,C" & r & ")=COUNTIFS($C:$C,C" & r & ",$" & col & ":$" & col & "," & col & r & "),""PRODUIT"",""ARTICLE"")" Next Next 

谢谢你的时间。

所以:

  1. 我的excel文件有A到BQ列
  2. 从L到BQ,两列中的一列是数据,下一列是公式
  3. 我的ID总是C列
  4. 基本上M列将使用列C来检查ID和列L以检查值。

现在的公式:单元格M2与Excel:

 =IF(COUNTIF($C:$C;C2)=COUNTIFS($C:$C;C2;$L:$L;L2);"PRODUIT";"ARTICLE") 

单元格M2与VBA:

ActiveCell.FormulaR1C1 = _ "=IF(COUNTIF(C3,RC[-10])=COUNTIFS(C3,RC[-10],C12,RC[-1]),""PRODUIT"",""ARTICLE"")"

现在在Excel中的单元格O2(基于C和N列):

 =IF(COUNTIF($C:$C;C2)=COUNTIFS($C:$C;C2;$N:$N;N2);"PRODUIT";"ARTICLE") 

最后用VBA电池O2:

  ActiveCell.FormulaR1C1 = _ "=IF(COUNTIF(C3,RC[-12])=COUNTIFS(C3,RC[-12],C14,RC[-1]),""PRODUIT"",""ARTICLE"")" 

现在我想使用循环(从L到BQ与步骤2)填充M2,O2,Q2,S2 …与variables

我希望你这次得到它,对不起我的低英语水平