dynamic检查单元值是否存在多次

我有一行数据与标题,相同的标题可以出现n次。 我需要循环VBA中的头文件,检查每个文件是否在整行中存在多次,如果是,则在每个文件末尾添加一个string。

 HEADER 1 HEADER 2 HEADER 3 HEADER 1 HEADER 2 HEADER 3 

结果应该是在循环之后(例如:

 HEADER 1 OLD HEADER 2 OLD HEADER 3 OLD HEADER 1 NEW HEADER 2 NEW HEADER 3 NEW 

我知道我需要循环的单元格,但然后逻辑逃脱我

 For i = 1 to lastCol If ws.Cells(1, i).Value = "HEADER 1" Then headerCount = headerCount + 1 End if Next i 

for循环之后的逻辑转义了我

可能不是最好的办法,但你可以遍历列表两次,并比较。 如果你有很多标题,这可能会很慢。

 For i = 1 to lastCol - 1 numDuplicates = 0 for j = i + 1 to lastCol if ws.Cells(1,i) = ws.Cells(1,j) then numDuplicates = numDuplicates + 1 ws.Cells(1,j) = ws.Cells(1,j) & " " & numDuplicates end if next j next i 

类似的东西? 这保留了原始的标题,然后用1,2,…标记重复项