簡體   English   中英

當2個不同工作表中的2個單元格相同時,刪除工作表中的一行

[英]Deleting a row in a sheet when 2 cells in 2 different sheets are the same

此宏應該比較同一工作簿中2個工作表中2個不同行中的單元格。 當單元格的值與第三個工作表中具有相同值的單元格的行匹配時,應刪除同一工作簿。

在比較的工作表中是公式,但在工作表中不是公式,應刪除行。

問題在於它不會刪除第三張紙中的單元格。 我插入了一些代碼,提示我這種比較有效。 但是代碼似乎隨機刪除了東西。

我嘗試了以下解決方案(還有其他一些我沒有鏈接的解決方案)鏈接:

如何比較兩個不同的Excel工作簿中的列

比較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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM