簡體   English   中英

根據Workbook1中的單元格值刪除Workbook2中的多行

[英]Delete multi Rows in Workbook2 depending on cell values in Workbook1

  1. 我需要根據工作簿1(A1)中單元格的值打開工作簿2的VBA代碼。
  2. B:B列(Workbook1)中有值,如果這些值與A:A列(Workbook2)中可用的值相同,則刪除包含(Workbook2)中相同值的整行。

誰能幫我創建代碼?

我嘗試了這個.....

    Private Sub CommandButton1_Click()
Dim WB1, WB2 As Workbook
Dim WS1, WS2 As Worksheet
Set WB1 = ThisWorkbook
CSN = Cells(1, 1)
Set WB2 = Workbooks.Open("C:\Users\Basel\Desktop\" & CSN & "")
Set WS1 = WB1.Worksheets("sheet1")
Set WS2 = WB2.Worksheets("Sheet1")

LastRow1 = WB1.WS1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
LastRow2 = WB2.WS2.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To 20
If WB1.WS1.Cells(i, 2).Value = WB2.WS2.Cells(i, 1).Value Then
WB2.WS2.Cells(i, 1).EntireRow.Delete

End If

Next i

End Sub

假設以下內容:

1)您創建了兩個名為WorkBook1和WorkBook2的工作簿對象

2)您正在將兩本書中的“ A”列與名為“ sheet1”的工作表進行比較

Dim WB1sheet As Worksheet
Dim WB2sheet As Worksheet
Dim cell As Range
Dim cell2 As Range

Set WB1sheet = WorkBook1.Sheets("sheet1")
Set wb2sheet = Workbook2.Sheets("sheet1")

'Loop through colum A
For Each cell In WB1sheet.Range("a1", "a1000000")
   ' for each loop through the other sheet
   If cell = "" Then
      Exit For
   End If
   For Each cell2 In wb2sheet.Range("a1", "a1000000")
      If cell = cell2 Then
         cell2.ClearContents
         Exit For
      End If
   Next cell2
Next cell

End Sub

這將只留下一個空白單元格而不刪除該行,刪除該行比較棘手,因為for每個循環將退出接收器和丟失行。 如果您需要刪除的行不僅僅被清除,那么簡單的解決方法是隨后對列進行排序,空白全部移到底部。 只需使用宏記錄記錄排序。

祝好運

真的,謝謝,我對代碼做了一些修改,但是可以正常工作。

    Private Sub CommandButton1_Click()
Dim WB1, WB2 As Workbook
Dim WS1, WS2 As Worksheet
Dim CELL1 As Range
Dim CELL2 As Range

CSN = Cells(1, 1)
Set WB1 = ThisWorkbook
Set WB2 = Workbooks.Open("C:\Users\Basel\Desktop\" & CSN & "")
Set WS1 = WB1.Worksheets("sheet1")
Set WS2 = WB2.Worksheets("Sheet1")

For Each CELL1 In WS1.Range("B1", "B10")
If CELL1 = "" Then
Exit For
End If
For Each CELL2 In WS2.Range("A1", "A10")
If CELL1 = CELL2 Then
CELL2.EntireRow.Delete
Exit For
End If
Next CELL2
Next CELL1

WB2.Save
WB2.Close
Range("B:B").ClearContents

End Sub`

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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