Excel 基于特定列名删除重复项
我是vba/宏的新手。。。我想根据指定的列名“Container”删除重复项。应根据“Container”列重复项删除整行。下面是我的代码,其中我得到了类型不匹配错误13。请帮助下面是我的代码和excel截图 我的代码Excel 基于特定列名删除重复项,excel,vba,Excel,Vba,我是vba/宏的新手。。。我想根据指定的列名“Container”删除重复项。应根据“Container”列重复项删除整行。下面是我的代码,其中我得到了类型不匹配错误13。请帮助下面是我的代码和excel截图 我的代码 Dim whs As Worksheet Dim colh Set whs = Worksheets("POL") colh = Array("Container") With whs Set rng = Range("A
Dim whs As Worksheet
Dim colh
Set whs = Worksheets("POL")
colh = Array("Container")
With whs
Set rng = Range("A1").End(xlDown)
rng.RemoveDuplicates Columns:=Array(colh), Header:=xlYes
End With
基于列名“Container”,我要删除所有整行重复:
指定列号而不是标题名。试试下面的代码
Sub RemDup()
Dim whs As Worksheet
Dim lRow As Long
lRow = Range("A1").End(xlDown).Row
Set whs = Worksheets("POL")
With whs.Range("A1:H" & lRow)
.RemoveDuplicates Columns:=7, Header:=xlYes
End With
End Sub
如果要使用列标题,则需要搜索列标题,然后从列标题中查找列编号
#编辑:使用匹配功能动态查找列标题。
Sub RemDup()
Dim whs As Worksheet
Dim lRow As Long, colNumber As Long
Dim colH As String
colH = "Container"
lRow = Range("A1").End(xlDown).Row
Set whs = Worksheets("POL")
colNumber = Application.Match(colH, whs.Range("A1:H1"), 0)
With whs.Range("A1:H" & lRow)
.RemoveDuplicates Columns:=colNumber, Header:=xlYes
End With
End Sub
您的代码有3个问题 首先是不匹配错误13,因为您使用的“colh”包含字符串-“Container”。但是,这些列需要数字 其次,“rng”仅包括A列。“RemovedUpplicates”只会发生在一个列中 第三,“带whs”实际上是没有意义的。您需要使用“.Range(“A1”).End(xlDown)”来指定范围是指whs工作表。否则,它将仅使用活动图纸 最后,我通常使用“cells(1,1).end(xltoright).column”等来查找最后一列或最后一行。 您可以参考以下代码
Dim whs As Worksheet
Dim colh
Set whs = Worksheets("POL")
With whs
Set Rng = .Range(.Cells(1, 1), .Cells(Cells(1, 1).End(xlDown).Row, .Cells(1.1).End(xlToRight).Column))
Rng.RemoveDuplicates Columns:=7, Header:=xlYes '7 means column G
End With
[这可能会对您有所帮助,只需根据您的首选项更改值,让我知道这是否有帮助]()每次列发生变化时,范围可能会不同,因此,不是列:=7我想在此处输入列名并删除整行。范围(“A1:H”)每次都可以携带。。。因此,它应该删除基于列名Perfect sir@Harun24HR的所有数据,这是有效的。。。。然而,我仍然对whs.Range(“A1:H”和:lRow)的代码行感到有点困惑。在这个代码行中,有一个定义为“A1到H”的范围!我并没有低估这部分代码。如果您能告诉我那里到底发生了什么,我将不胜感激。先生
whs.Range(“A1:H”和:lRow)
正在设置从中删除重复项的范围<代码>lRow正在指定上次使用的行。假设您将数据保存到A200
,然后“A1:H”和:lRow
正在设置A1:H200
以删除重复项。非常感谢@Harun24HRno它不起作用,我在“对象”工作表的“set range=.range………”行上收到错误“set range=.range………”错误代码1004方法“range”\n我刚刚检查了它。该程序是由于“单元格”应该是“.cells”。我刚刚更新了代码