返回列表 上一主題 發帖

在不同工作表中找尋底色相同的資料並刪除

回復 1# Changbanana
試試看
  1. Dim myRow As Integer

  2. Sheets("sheet1").Activate
  3. Range("B2").Select
  4. Do While ActiveCell <> ""
  5.     myRow = WorksheetFunction.Match(ActiveCell, Sheets("sheet2").Range("A:A"), 0)
  6.     If Sheets("sheet2").Cells(myRow, "A").Interior.ColorIndex = 14 Then
  7.         Rows(ActiveCell.Row).Delete
  8.     Else
  9.         ActiveCell.Offset(1, 0).Select
  10.     End If
  11. Loop
複製代碼

TOP

回復 3# Changbanana
顏色的問題,ColorIndex那邊要改成43。
可以簡單用msgbox檢查顏色對應的數字。
  1. mycolor = Sheets(2).Range("A2").Interior.ColorIndex
  2. MsgBox (mycolor)
複製代碼

TOP

回復 6# Changbanana
不客氣。如果sheet1的id都會在sheet2出現,只是順序不一樣,那這樣就可以了;
如果不一定的話就要加上錯誤處理,不然match找不到的時候就會出現錯誤訊息。

TOP

回復 8# Changbanana
試試看。
  1. Dim myRow As Integer

  2. Sheets("工作表1").Activate
  3. Range("B2").Select
  4. Do While ActiveCell <> ""
  5.     If IsError(Application.Match(ActiveCell, Sheets("工作表2").Range("A:A"), 0)) Then
  6.         ActiveCell.Offset(1, 0).Select
  7.     Else
  8.         myRow = WorksheetFunction.Match(ActiveCell, Sheets("工作表2").Range("A:A"), 0)
  9.         
  10.         If Sheets("工作表2").Cells(myRow, "A").Interior.ColorIndex = 43 Then
  11.         Rows(ActiveCell.Row).Delete
  12.         Else
  13.             ActiveCell.Offset(1, 0).Select
  14.         End If
  15.         
  16.     End If
  17.    
  18. Loop
複製代碼

TOP

回復 11# Changbanana
跟Access不太熟耶,看其他前輩有沒有比較好的方法。
最簡單的話就用ADO把資料讀出來放到excel裡,處理完再把資料寫回去。

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題