删除命名区域中的重复项

我有一个问题,我相信你会find一个简单的解决scheme,我在这个头上

我有从另一个工作簿复制范围的代码,将其粘贴到当前的工作簿中,然后删除重复项

问题是,在删除重复项之后,它认为范围仍然和去除重复项(包括空格)一样长,

例:

allcontacts是1-10行

我从另一个工作簿3粘贴10行是新的,所以它删除了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 

除了我知道导致问题的代码行之外,我做了所有的注释

返回公式►名称pipe理器,重新定义名为range的allcontacts ,使其指向:是dynamic的。 就像是,

 'allcontacts Refers to: =CONTACTS!$A$1:INDEX(CONTACTS!$M:$M, MATCH("zzz", CONTACTS!$A:$A)) 

这假定列A中的文本,而列A通常总是有一个值,当它应该。 如果你在A列有数字,

 'allcontacts Refers to: =CONTACTS!$A$1:INDEX(CONTACTS!$M:$M, MATCH(1e99, CONTACTS!$A:$A))