Delete duplicate data in Excel

Source: Internet
Author: User
I often encounter repeated data in Excel. If the number of data records is small, manual deletion may be acceptable. If the data size is large, you need to use a computer to pull the data. Generally, there are two methods, one is to use advanced filtering tools in Excel, and the other is as follows. Using VB Scripts may be easier to use. 1. function 1

Sub deletedouble ()

'User input prompt
Dim userinput
Userinput = application. inputbox ("Enter the start row to be checked, end row, and column to be checked, in the format of, C ")

Dim arruserinput
Arruserinput = Split (userinput ,",")

Dim thecolumn
Thecolumn = ASC (arruserinput (2)-64 'column to be verified

Dim thestart
Thestart = arruserinput (0) 'Data start line

Dim theend
Theend = arruserinput (1) 'number of the last row of data.

Dim I 'number of each row
Dim J'
For I = thestart to theend' the process of loop processing. If the data is large, it may take a lot of time.
For J = I + 1 to theend' from the current row to the end.
If cells (I, thecolumn) = cells (J, thecolumn) then
Rows (j). Delete
End if
Next
Next

End sub

2. function 2

It is relatively convenient to use macros to solve such problems. If you are interested, try:

1. press Alt + F11 to open the VB Editor

2. Double-click thisworkbook in "MS Excel Object" in "engineering Resource Manager" on the left, andCodePaste the following code into the window:

Sub deletes duplicate data ()
'Delete duplicate data in the col Column
'In this example, the duplicate data of column A (starting from cell A2) in the Excel table titled sheet1 is deleted.
Application. screenupdating = false
'You can modify the end values of the following three rows according to the actual situation.
Dim sheetscaption as string: sheetscaption = "sheet1"
Dim Col as string: Col = ""
Dim startrow as integer: startrow = 2

'Do not modify the following
Dim endrow as integer: endrow = sheets (sheetscaption). Range (COL & "65536"). End (xlup). Row
Dim count_1 as integer: count_1 = 0
Dim count_2 as integer: count_2 = 0
Dim I as integer: I = startrow

With sheets (sheetscaption)

Do
Count_1 = count_1 + 1
For J = startrow to I-1
If. Range (COL & I) =. Range (COL & J) then
Count_1 = count_1-1
. Range (COL & I). entirerow. Delete
Endrow = sheets (sheetscaption). Range (COL & "65536"). End (xlup). Row
I = I-1
Count_2 = count_2 + 1
Exit
End if
Next
I = I + 1
Loop while I <endrow + 1
End

Msgbox "Total" & count_1 & "non-duplicate data"
Msgbox "delete" & count_2 & "duplicate data"
Application. screenupdating = true
End sub

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.