VBA – 查找值出现在另一张纸上的次数

我对VBA比较陌生,遇到了一些问题。 我在Sheet 1有一个值列表,所有这些值也在Sheet 2中列出。 许多值在Sheet 2多次列出。 如何计算在工作Sheet 2出现的值的次数,然后将该数字添加到工作Sheet 1 Cells(a,3) (其中a对应于该行)? 我想保持图1中列出的值不变,只能操作每行中的Cell(a,3)

我尝试了很多东西,但我真的不知道从哪里开始。 任何帮助,将不胜感激。

你会循环使用类似于你的单元格:

 For Each rngCell in Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp)) rngCell.Value = rngCell.Value + WorksheetFunction.CountIf('Sheet2!'A:AZ, "value") Next rngCell 

如果for循环遍历第一列到第三列中的最后一个单元格,那么将“sheet2”中的countif(将A:AZ更改为您使用的列的值)添加到“Value”

您可以通过仅将COUNTIF()函数分配给您的范围,而无需循环即可完成此操作:

 With Range("C2:C" & Range("A2").End(xlDown).Row) .Formula = "=COUNTIF(Sheet2!A:A,A2)" .Value = .Value End With