Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用右键函数删除重复项_Excel_Vba - Fatal编程技术网

Excel 使用右键函数删除重复项

Excel 使用右键函数删除重复项,excel,vba,Excel,Vba,我正在寻找一个宏来删除列中的重复项,关于它们的最后一个值 e、 g 因为556是相同的,所以应该删除它 现在我得到了每个单元格的最后4位数字,但我不知道如何用它删除重复项 Sub duplicates() Dim i As Long Dim res As String Dim WB As Workbook Dim WS As Worksheet Dim total As Long Set WB = Workbooks("MQB37W - SW Architecture Matrix_Nw")

我正在寻找一个宏来删除列中的重复项,关于它们的最后一个值 e、 g

因为556是相同的,所以应该删除它

现在我得到了每个单元格的最后4位数字,但我不知道如何用它删除重复项

Sub duplicates()

Dim i As Long
Dim res As String
Dim WB As Workbook
Dim WS As Worksheet
Dim total As Long

Set WB = Workbooks("MQB37W - SW Architecture Matrix_Nw")
Set WS = WB.Sheets("SW Architecture Main - In...")

With WS
    total = .Cells(Rows.Count, 1).End(xlUp).Row

    For i = 4 To total
        res = Right(Cells(i, "A").Value, 4)
        WS.Range("A4:total").RemoveDuplicates Columns:=1, Header:=xlNo
    Next
End With
End Sub

这不需要VBA。您可以在新列中使用此列中的代码,然后根据该列筛选、条件格式或删除行。如果希望仅在第一次出现后指示行,则可以使用COUNTIF。当然,如果您需要VBA来完成其他工作,您可以在VBA代码中应用我上面描述的相同逻辑。

您不需要VBA来完成此工作。您可以在新列中使用此列中的代码,然后根据该列筛选、条件格式或删除行。如果希望仅在第一次出现后指示行,则可以使用COUNTIF。当然,如果你需要VBA来做其他事情,你可以在VBA代码中应用我上面描述的相同逻辑。

你不能使用
RemoveDuplicates
。我可能会建立一个要删除的单元格的联合体,然后在最后删除。你能给我举个例子吗?我不太明白最近的一个答案是如何在这个案例中使用
Union
。您实际要删除哪些内容,保留哪些内容?我的意思是,如果你说
DES_FFAs_556
asda_FRF_556
是重复的,因为最后4个字符是相同的。你如何决定你保留哪一个?或者两者都应该删除?请澄清。首先我想查一下电话号码。这是相同的,我将澄清保留哪个前缀。列中的所有其他内容均应删除。您不能为此使用
删除的副本。我可能会建立一个要删除的单元格的联合体,然后在最后删除。你能给我举个例子吗?我不太明白最近的一个答案是如何在这个案例中使用
Union
。您实际要删除哪些内容,保留哪些内容?我的意思是,如果你说
DES_FFAs_556
asda_FRF_556
是重复的,因为最后4个字符是相同的。你如何决定你保留哪一个?或者两者都应该删除?请澄清。首先我想查一下电话号码。这是相同的,我将澄清保留哪个前缀。该列中的所有其他内容都应删除。这似乎比vba代码要多做一些工作,但可能会完成工作:)我同意,但你可以一步一步直观地看到我更喜欢的计算。这似乎比vba代码多做一些工作,但可能会完成工作:)我同意,但是你可以一步一步地直观地看到我喜欢的计算。
Sub duplicates()

Dim i As Long
Dim res As String
Dim WB As Workbook
Dim WS As Worksheet
Dim total As Long

Set WB = Workbooks("MQB37W - SW Architecture Matrix_Nw")
Set WS = WB.Sheets("SW Architecture Main - In...")

With WS
    total = .Cells(Rows.Count, 1).End(xlUp).Row

    For i = 4 To total
        res = Right(Cells(i, "A").Value, 4)
        WS.Range("A4:total").RemoveDuplicates Columns:=1, Header:=xlNo
    Next
End With
End Sub