![](/img/trans.png)
[英]Using VBA To Compare Cells From Different Sheets And Insert New Row On One Sheet When Cells Don't Match
[英]Deleting a row in a sheet when 2 cells in 2 different sheets are the same
此宏应该比较同一工作簿中2个工作表中2个不同行中的单元格。 当单元格的值与第三个工作表中具有相同值的单元格的行匹配时,应删除同一工作簿。
在比较的工作表中是公式,但在工作表中不是公式,应删除行。
问题在于它不会删除第三张纸中的单元格。 我插入了一些代码,提示我这种比较有效。 但是代码似乎随机删除了东西。
我尝试了以下解决方案(还有其他一些我没有链接的解决方案)链接:
比较VBA中不同工作表中的2个单元格(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
如果使用代码:
Dim i As Long
With Workbooks("Book1").Worksheets("Sheet1")
For i = 1 To 4
If IsEmpty(.Cells(i, 1)) Then .Rows(i).Delete
Next i
End With
您会错过一些行。 例如,如果代码删除了第3行,则第4行变为第3行。但是,变量i
将更改为4。因此,在这种情况下,代码将丢失一行并检查另一行,而该行以前不在范围内。
在您的情况下,您应该使用此
For i = Sht1LastRow To 15 Step -1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.