删除命名范围内的重复项
remove duplicates in named range
我有一个问题,我相信你会找到一个简单的解决方案
我对这个感到头疼
我有代码从另一个工作簿复制一个范围,将其粘贴到当前工作簿,然后删除重复项
问题是,删除重复项后,它认为范围仍然与删除重复项之前一样长(包括空格)
示例:
allcontacts 是第 1-10 行
我从另一个工作簿粘贴 10 行
3 个是新的,所以它删除了 7 个重复项
我的范围(在名称管理器中)应该是 1:13,但它显示 1:20,底部有 7 个空格
'Dim currentworkbook As String
'currentworkbook = ActiveWorkbook.Name
'Workbooks.Open ("q:\mis\_estimatorm1.xlsm")
'Workbooks("_estimatorm1.xlsm").Worksheets("contacts").Range("Allcontacts").Copy
'Workbooks(currentworkbook).Activate
'Sheets("contacts").Rows("3:3").Select
'Selection.Insert Shift:=xlDown
'Application.CutCopyMode = False
' Sheets("contacts").Activate
' Cells.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder _
' :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
ActiveSheet.Range("allcontacts").RemoveDuplicates Columns:=Array(1, 3, 4), Header:=xlNo
'Columns("A:m").Select
' ActiveWorkbook.Worksheets("CONTACTS").Sort.SortFields.Clear
'ActiveWorkbook.Worksheets("CONTACTS").Sort.SortFields.Add Key:=Range( _
' "A2:A2000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
' xlSortNormal
'With ActiveWorkbook.Worksheets("CONTACTS").Sort
' .SetRange Range("A1:m2000")
' .Header = xlYes
' .MatchCase = False
'.Orientation = xlTopToBottom
'.SortMethod = xlPinYin
'.Apply
'End With
Sheets("QUOTE").Activate
Range("A10").Select
除了我知道引起问题的那行代码外,我做了所有笔记
返回公式 ► 名称管理器并重新定义您的 allcontacts 命名范围,以便 Refers to: 是动态的。像,
'allcontacts Refers to:
=CONTACTS!$A:INDEX(CONTACTS!$M:$M, MATCH("zzz", CONTACTS!$A:$A))
假定 A 列中的文本,并且 A 列通常总是在应有值时具有值。如果您在 A 列中有数字,那么它将是
'allcontacts Refers to:
=CONTACTS!$A:INDEX(CONTACTS!$M:$M, MATCH(1e99, CONTACTS!$A:$A))
我有一个问题,我相信你会找到一个简单的解决方案 我对这个感到头疼
我有代码从另一个工作簿复制一个范围,将其粘贴到当前工作簿,然后删除重复项
问题是,删除重复项后,它认为范围仍然与删除重复项之前一样长(包括空格)
示例:
allcontacts 是第 1-10 行
我从另一个工作簿粘贴 10 行 3 个是新的,所以它删除了 7 个重复项
我的范围(在名称管理器中)应该是 1:13,但它显示 1:20,底部有 7 个空格
'Dim currentworkbook As String
'currentworkbook = ActiveWorkbook.Name
'Workbooks.Open ("q:\mis\_estimatorm1.xlsm")
'Workbooks("_estimatorm1.xlsm").Worksheets("contacts").Range("Allcontacts").Copy
'Workbooks(currentworkbook).Activate
'Sheets("contacts").Rows("3:3").Select
'Selection.Insert Shift:=xlDown
'Application.CutCopyMode = False
' Sheets("contacts").Activate
' Cells.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder _
' :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
ActiveSheet.Range("allcontacts").RemoveDuplicates Columns:=Array(1, 3, 4), Header:=xlNo
'Columns("A:m").Select
' ActiveWorkbook.Worksheets("CONTACTS").Sort.SortFields.Clear
'ActiveWorkbook.Worksheets("CONTACTS").Sort.SortFields.Add Key:=Range( _
' "A2:A2000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
' xlSortNormal
'With ActiveWorkbook.Worksheets("CONTACTS").Sort
' .SetRange Range("A1:m2000")
' .Header = xlYes
' .MatchCase = False
'.Orientation = xlTopToBottom
'.SortMethod = xlPinYin
'.Apply
'End With
Sheets("QUOTE").Activate
Range("A10").Select
除了我知道引起问题的那行代码外,我做了所有笔记
返回公式 ► 名称管理器并重新定义您的 allcontacts 命名范围,以便 Refers to: 是动态的。像,
'allcontacts Refers to:
=CONTACTS!$A:INDEX(CONTACTS!$M:$M, MATCH("zzz", CONTACTS!$A:$A))
假定 A 列中的文本,并且 A 列通常总是在应有值时具有值。如果您在 A 列中有数字,那么它将是
'allcontacts Refers to:
=CONTACTS!$A:INDEX(CONTACTS!$M:$M, MATCH(1e99, CONTACTS!$A:$A))