我通常编码C但是我被迫使用VBA并且我整天都在撕裂我的头发。
场景:我工作的工程师每天都会获得数百份文档,他有一个解压缩的宏,并在Excel工作表中列出文档。 A列是UniqueID,B是Zip文件名,C是文件名。每个Zip文件都有一个求职信,其名称与Zip文件名相同。这封求职信是无用的,需要删除。
我需要一个宏,当行包含coverletter信息时,它会删除整行。例如,如果B4 = C4删除第4行或者如果B5 = C5,则删除第5行等。我尝试的所有内容都返回错误。 我想出了这个:
Sub DeleteDuplicateEntries()
Dim Cell As Range, Cel As Range, N&
Application.ScreenUpdating = False
N = 0
For Each Cell In Selection
' ignore empty cells
If Cell <> Empty Then
For Each Cel In Selection
'compare non-empty cel values
'and clear contents if duplicated value
If Cel <> Empty And _
Cel.Value = Cell.Value And _
Cel.Address <> Cell.Address Then
Cel.ClearContents
N = N + 1
End If
Next Cel
End If
Next
Application.ScreenUpdating = True
End Sub
问题:它最终会删除每个Zip文件名(除了第一个),但它不会删除该行:(
答案 0 :(得分:1)
试试这个小宏:
Sub rowKiller()
Dim N As Long, i As Long
N = Cells(Rows.Count, "B").End(xlUp).Row
For i = N To 2 Step -1
If Cells(i, "B").Value = Cells(i, "C").Value Then
Cells(i, "B").EntireRow.Delete
End If
Next i
End Sub