我有一个宏,该宏复制“ B4:B50”列中的所有“非空白”单元格并将其粘贴到“合并的跟踪器”工作表中的单元格“ B4”中。
这将返回我要删除的重复数据。
Sub CopyRangeFromMultiWorksheets()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set DestSh = ThisWorkbook.Worksheets("Consolidated Tracker")
For Each sh In ActiveWorkbook.Worksheets
If sh.Name <> DestSh.Name Then
Last = WorksheetFunction.Max(4, DestSh.Range("B" & Rows.Count).End(xlUp).Row)
sh.Range("B4:B50").Copy DestSh.Range("B" & Last)
End If
Next
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
我试图通过添加以下内容来适应Range.RemoveDuplicates Method (Excel):
DestSh("B4:B10000").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
在For Each
循环之后,请先删除重复项,然后再尝试找出如何删除空格,我认为它将留在后面。
我得到一个
运行时错误'438':对象不支持此属性或方法
我认为这意味着我不能将DestSh用作工作表。我认为工作表不支持RemoveDuplicate。
答案 0 :(得分:1)
如果只有一列数据,请尝试:
DestSh.Range("B4:B10000").RemoveDuplicates Columns:=1, Header:=xlYes