我在 Excel 中创建了一个宏来合并重复的行:
这个想法是,如果 2 行或更多行具有相同的 ABC 列,我会合并它们的 D 列以删除 ABC 重复项。我需要这样做,但要检查更多的列。
我的宏看起来像这样:
processingRow = 2
Do Until Cells(processingRow, 1).Value = ""
i = processingRow + 1
Do Until Cells(i, 1).Value = ""
If Cells(processingRow, 8) = Cells(i, 8) And _
Cells(processingRow, 12) = Cells(i, 12) And _
Cells(processingRow, 7) = Cells(i, 7) And _
Cells(processingRow, 6) = Cells(i, 6) And _
Cells(processingRow, 5) = Cells(i, 5) And _
Cells(processingRow, 4) = Cells(i, 4) And _
Cells(processingRow, 3) = Cells(i, 3) And _
Cells(processingRow, 2) = Cells(i, 2) And _
Cells(processingRow, 1) = Cells(i, 1) Then
If Cells(i, 14) <> "" Then
Cells(processingRow, 14) = Cells(processingRow, 14) & "," & Cells(i, 14)
End If
Rows(i).Delete
End If
i = i + 1
Loop
processingRow = processingRow + 1
Loop
当运行 500 行的宏时,它需要一段时间,但它仍然是合理的。但是我需要在超过 2500 行的 excel 中运行这个宏,而且它需要很长时间,以至于它不再实用了。
这是我在 Excel 中使用 VBA 的第一个宏,所以我想知道是否有更快的方法来处理行/单元格,因为单独访问它们似乎非常慢。
有任何想法吗?