我的总体目标是从工作表中删除所有相同的行。
因此,我创建了两个数组。一个是“当前行”(1),第二个数组是用另一行重新填充的。到目前为止有效。
现在我要匹配两个数组,如果它们相同,则应删除相应的行。
然后,“当前行”更改为2。
我现在的代码是:
For j = 1 To VarAnzahlZeilen
i = 1
For i = 1 To VarAnzahlSpalten
ReDim Preserve ArrAktuelleZeile(i - 1) As String
ArrAktuelleZeile(i - 1) = Worksheets("Filter").Cells(j, i).Value
Next i
(i+1)
For n = j + 1 To VarAnzahlZeilen
k = 1
For k = 1 To VarAnzahlSpalten
ReDim Preserve ArrDurchlaufZeile(k) As String
ArrDurchlaufZeile(k - 1) = Worksheets("Filter").Cells(n, k).Value
Next k
If Not IsError(WorksheetFunction.Match(ArrAktuelleZeile, ArrDurchlaufZeile, 0)) Then
Rows(n).Delete
End If
Next n
Next j
RuntimeError 13出现在以下行:
如果不是IsError(WorksheetFunction.Match(ArrAktuelleZeile,ArrDurchlaufZeile,0))然后
我想整体代码可以改进^^
可以帮忙吗?
首先,非常感谢所有正在提供帮助的人。
我尝试了@GTPV的想法,并对其进行了少许修改以满足我的需要(可变范围并比较1-30列)。 不幸的是出现了Syntaxerror
Worksheets("Filter").Range(.Cells(1, 1), .Cells(VarAnzahlZeilen, VarNutzerSpalte))).RemoveDuplicates Columns:=Array(1, 2, 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30), Header _
:=xlNo
答案 0 :(得分:1)
一种可能性是使用Excel中的内置功能来删除重复项:
Worksheets("Filter").Range("$A$1:$C$10").RemoveDuplicates Columns:=Array(1, 3), Header _
:=xlNo
上面的示例将删除A1:C10范围内的所有重复项,其中重复项意味着“ A列中的值相同而C列中的值相同”。最后一个参数由“ Columns:= Array(1,3)”参数控制。
仅基于列A仅获取唯一值将被编码为:
Worksheets("Filter").Range("$A$1:$C$10").RemoveDuplicates Columns:=Array(1), Header _
:=xlNo
基于所有列的组合获取唯一值:
Worksheets("Filter").Range("$A$1:$C$10").RemoveDuplicates Columns:=Array(1,2,3), Header _
:=xlNo
有关该功能的其他帮助,请参见on Microsoft website.