VBA Excel删除重复行
所以我试图删除C列中有重复的行。这是大约700条记录的列,但是这个值随使用的不同数据而异,因此我实现了一个“LastRow”功能。这里是我的代码:VBA Excel删除重复行
Public Function LastRowInCRC() As Long Dim wsCRC As Worksheet
Set wsCRC = Worksheets("CRC")
With wsCRC
LastRowInCRC = .Cells(.Rows.Count, "C").End(xlUp).Row
End With
End Function
Sub DeleteDupRowsCRC()
Dim wsCRC As Worksheet
Set wsCRC = Worksheets("CRC")
Dim lrowcrc As Long
lrowcrc = CRC.LastRowInCRC
'Debug.Print "C8:C" & lrowcrc
With wsCRC
.Range("C8:C" & lrowcrc).RemoveDuplicates Columns:=Array(3)
End With
End Sub
我得到的“应用程序定义或对象定义的”在下面的行,当我一步一步地调试错误:
.Range("C8:C" & lrowcrc).RemoveDuplicates Columns:=Array(3)
任何想法什么问题呢?我将“C8:C”& lrowcrc称为即时窗口,它被注释掉了,它给了我正确的范围值,所以我不认为问题在那,但我找不到什么错误......任何帮助都很大赞赏。
回答:
通常,将Array(3)
更改为Array(1)
,它可能会有效。
不一般:对我来说,下面的工作,除去在C
列中的重复确保您的第一个工作表的工作:
Option Explicit Public Function LastRowInCRC() As Long
Dim wsCRC As Worksheet
Set wsCRC = Worksheets(1)
With wsCRC
LastRowInCRC = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
End Function
Sub DeleteDupRowsCRC()
Dim wsCRC As Worksheet
Set wsCRC = Worksheets(1)
Dim lrowcrc As Long
lrowcrc = LastRowInCRC
'Debug.Print "C8:C" & lrowcrc
With wsCRC
.Range("C1:C" & lrowcrc).RemoveDuplicates Columns:=Array(1)
End With
End Sub
在你的代码,Array(3)
意味着你应该有在.Range
中至少有三列。但你只有C
列。因此,它会出错。要与Array(3)
一起工作,请写A1:C
,它会起作用。
回答:
我认为你的范围无效的语法。 请试试这个下面
With wsCRC .Range(Cells(8, 3), Cells(lrowcrc, 3)).Select
.Range(Cells(8, 3), Cells(lrowcrc, 3)).RemoveDuplicates Columns:=1, Header:=xlYes
End With
在旁边,我想你应该使用下面
lrowcrc = LastRowInCRC
或使用此代码来获取最后一行
wsCRC。[C8] .SpecialCells(xlCellTypeLastCell).Row
以上是 VBA Excel删除重复行 的全部内容, 来源链接: utcz.com/qa/261842.html