日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在 Excel 中如何使用宏示例删除列表中的重复项

發(fā)布時間:2023/12/31 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 Excel 中如何使用宏示例删除列表中的重复项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概要:在 Microsoft Excel 中,可以創(chuàng)建宏來刪除列表中的重復(fù)項。也可以創(chuàng)建宏來比較兩個列表,并刪除第二個列表中那些也出現(xiàn)在第一個(主)列表中的項目。如果您想將兩個列表合并在一起,或者如果只想看到新的信息,則上述做法很有用。本文包含 Microsoft Visual Basic for Applications 示例宏(Sub?過程),說明如何刪除單個列表中的重復(fù)記錄(示例 1),以及如何在比較兩個列表后刪除重復(fù)記錄(示例 2)。這些宏并不要求對列表進行排序。此外,這些宏可刪除任意數(shù)量的重復(fù)項,無論項目在列表中是重復(fù)一次還是多次。

Excal數(shù)據(jù)示例如下:

序號???? ?圖號???? 名稱????? 數(shù)量
?1 ? ? ? ?123 ? ?氣缸蓋??? ?10
?2 ? ? ? ?123??? 氣缸蓋 ? ? 10
?3 ? ? ? ?456????噴油器 ? ? 30

對于這段數(shù)據(jù)進行簡單處理,刪除序號1或者2其中的任何一行均可,但是要保留其中一行

Sub 刪除重復(fù)行()Dim xRow As IntegerDim i As IntegerxRow = Range("B65536").End(xlUp).RowFor i = 2 To xRowFor j = i + 1 To xRowIf Cells(j, 2) = Cells(i, 2) ThenRange(Cells(j, 1), Cells(j, 256)).Rows.Deletej = j - 1xRow = xRow - 1End IfNextNext End Sub

?

輸入上述代碼,運行該代碼或運行宏“刪除重復(fù)行”即可。有個缺陷,只是判斷圖號相同即刪除,假如圖號相同、數(shù)量不同的行照樣刪除。

示例 1:刪除單個列表中的重復(fù)項

以下示例宏搜索區(qū)域 A1:A100 中的單個列表,并刪除列表中的所有重復(fù)項。此宏要求在列表區(qū)域中不能有空白單元格。如果列表確實包含空白單元格,請按升序?qū)?shù)據(jù)進行排序,以使空白單元格全都位于列表的末尾。

Sub DelDups_OneList() Dim iListCount As Integer Dim iCtr As Integer' Turn off screen updating to speed up macro. Application.ScreenUpdating = False' Get count of records to search through. iListCount = Sheets("Sheet1").Range("A1:A100").Rows.Count Sheets("Sheet1").Range("A1").Select ' Loop until end of records. Do Until ActiveCell = ""' Loop through records.For iCtr = 1 To iListCount' Don't compare against yourself.' To specify a different column, change 1 to the column number.If ActiveCell.Row <> Sheets("Sheet1").Cells(iCtr, 1).Row Then' Do comparison of next record.If ActiveCell.Value = Sheets("Sheet1").Cells(iCtr, 1).Value Then' If match is true then delete row.Sheets("Sheet1").Cells(iCtr, 1).Delete xlShiftUp' Increment counter to account for deleted row.iCtr = iCtr + 1End IfEnd IfNext iCtr' Go to next record.ActiveCell.Offset(1, 0).Select Loop Application.ScreenUpdating = True MsgBox "Done!" End Sub

示例 2:比較兩個列表并刪除重復(fù)項

以下示例宏將一個(主)列表與另一個列表進行比較,然后刪除第二個列表中那些也出現(xiàn)在主列表中的重復(fù)項。第一個列表在 Sheet1 上的區(qū)域 A1:A10 中。第二個列表在 Sheet2 上的區(qū)域 A1:A100 中。要使用此宏,請選擇任一個表,然后運行此宏。

Sub DelDups_TwoLists() Dim iListCount As Integer Dim iCtr As Integer' Turn off screen updating to speed up macro. Application.ScreenUpdating = False' Get count of records to search through (list that will be deleted). iListCount = Sheets("sheet2").Range("A1:A100").Rows.Count' Loop through the "master" list. For Each x In Sheets("Sheet1").Range("A1:A10")' Loop through all records in the second list.For iCtr = 1 To iListCount' Do comparison of next record.' To specify a different column, change 1 to the column number.If x.Value = Sheets("Sheet2").Cells(iCtr, 1).Value Then' If match is true then delete row.Sheets("Sheet2").Cells(iCtr, 1).Delete xlShiftUp' Increment counter to account for deleted row.iCtr = iCtr + 1End IfNext iCtr Next Application.ScreenUpdating = True MsgBox "Done!" End Sub

?

轉(zhuǎn)載于:https://www.cnblogs.com/TBW-Superhero/p/7007217.html

總結(jié)

以上是生活随笔為你收集整理的在 Excel 中如何使用宏示例删除列表中的重复项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。