挣扎着一点点的代码,我正在做我的头 - 我试图比较两个工作表,并根据所提供的所有信息删除重复的行。理想的结构是将PasteCSV与OriginalCSV进行比较。重复的行,然后将宏检查删除了该行,如果所有的数据匹配 - 我试图用if语句来退出这个功能,但不是100%肯定,如果我做是正确的:接下来没有错误在循环中的excel vba
Sub DeleteDuplicates()
Dim Row As Long
Dim Vendor As Range
Dim Software As Range
Dim Version As Range
Sheets("PasteCSV").Select
Columns("A").Delete
For Row = Range("A65536").End(xlUp).Row To 1 Step -1
Set Vendor = Sheets("OriginalCSV").Range("A").Find(Cells(Row, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not Vendor Is Nothing Then
Set Software = Sheets("OriginalCSV").Range("B").Find(Cells(Row, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not Software Is Nothing Then
Set Version = Sheets("OriginalCSV").Range("C").Find(Cells(Row, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not Version Is Nothing Then
Cells(Row, 1).EntireRow.Delete
End If
Next Row
Sheets("PasteCSV").Cells.Copy
Sheets(Sheets.Count).Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
任何帮助将不胜感激!
我认为,该错误信息导致你错了。因为每个'If'都需要他自己,所以你缺少两个'End If'。 – IQV
如果您缺少两个结尾。或者你应该用Else替换你的第二和第三个IF。 – Luuklag