![](/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.