此宏应比较同一工作簿中2个工作表中2个不同行中的单元格 . 当单元格的值与第三个工作表中具有相同值的单元格的行匹配时,应删除相同的工作簿 .
在比较的工作表中是公式但不在工作表中,应删除行 .
问题是它不会删除第三张表格中的单元格 . 我插入了一些代码,告诉我比较有效 . 但代码似乎随机删除了东西 .
我尝试了以下解决方案(还有一些其他我没有链接)链接:
How to compare columns from two different excel workbooks
Compare 2 cells in different sheets in VBA(Excel 2010)
Sub Vergleich_alter_Kundenausdruck_mit_aktuellen_Werten_V3()
Application.ScreenUpdating = False
Dim Sht1LastRow As Long
Dim i As Long
Dim j As Long
Set s1 = Sheets("Konditionen")
Set s2 = Sheets("Konditionseingabeausdruck")
Set s3 = s2.Next
Sht1LastRow = Sheets("Konditionen").Cells(65536, 1).End(xlUp).Row
For i = Sht1LastRow To 15 Step -1
If IsEmpty(s1.Cells(i, 6)) = True Then GoTo leer:
If s3.Cells(i, 5).Value <> s1.Cells(i, 6).Value Then
s1.Cells(i, 10).Value = s3.Cells(i, 5).Value
ElseIf s3.Cells(i, 5).Value = s1.Cells(i, 6).Value Then
s2.Cells(i, 6).EntireRow.Delete
s1.Cells(i, 9).Value = s3.Cells(i, 5).Value
Else
GoTo leer:
End If
leer:
Next i
Application.ScreenUpdating = True
End Sub
1 回答
如果使用代码:
你会错过一些行 . 例如,如果代码删除第3行,则第4行将变为第3行 . 但是,变量
i
将更改为4.因此,在这种情况下,代码将错过一行并检查另一行,这在先前不在范围内 .在你的情况下,你应该使用它