重复条目的excel vba公式

时间:2015-08-24 16:38:48

标签: excel vba formula

我需要一个公式来查找姓氏重复。公式是

ThisWorkbook.Activate
Range("M1").Select
ActiveCell.FormulaR1C1 = "=IF(COUNTIF(J:J,J1)>1,""Duplicates"","""")"

但是当我运行宏时会产生下面的....并且有额外的括号和单引号。

=IF(COUNTIF(J:(J),'J1')>1,"Duplicates","")

我一定是做错了什么但不知道是什么。

3 个答案:

答案 0 :(得分:1)

这是因为您使用.FormulaR1C1 =

将其更改为.Formula =

那就是它。这将解决问题。

另一方面,在执行此操作之前没有理由选择范围(除非您确实希望在宏完成后由于某种原因选择它),但通常这会减慢宏执行速度。虽然它不会在这里产生任何显着差异,但是当你可以消除许多选择时,这个概念是很好的。

以下是没有范围选择的宏的外观:

ThisWorkbook.Activate
[m1].Formula = "=IF(COUNTIF(J:J,J1)>1,""Duplicates"","""")"

答案 1 :(得分:0)

您将R1c1与常规参考混合。用于r1c1,

"=IF(COUNTIF(C[9],R1C10)>1,""Duplicates"","""")"

C[9]是相对引用(类似于J),而R1C10是绝对引用(第1行,单元格10 = $J$10)。

答案 2 :(得分:-2)

由于您没有提供足够的详细信息,您的问题无法解决。

单引号出现,因为excel试图修正公式。

您需要查询COUNTIF的工作方式(第二个参数用于标准)

您还需要手动在单元格中输入公式并使其首先运行。您需要在问题中提供此公式。

使用“FormulaR1C1”将要求您提供R1C1样式的公式。您可能希望使用此属性,以便您可以使用正常的“A1”样式的寻址单元格:

ActiveCell.Formula = "=A1"

COUNTIF(J:J,J1)>1是一种非常奇怪的方法来实现所有单元格的计数,其中包含“Duplicate”一词。 (我假设J1的文本为“Duplicate”)。

更好的代码可能包含COUNTACOUNTIF(J:J,"Duplicate")>1