2016-01-04 97 views
1

我有,我相信你会找到一个简单的解决方案 我是在我的头上这一个删除重复的命名范围

我有代码的问题,即复制从另一个工作簿的范围,它粘贴在当前簿,然后移除重复

问题是,除去重复项后,它认为范围仍然是只要除去重复项(它包括空格)之前

例如:

个allcontacts是行1-10

我粘贴从另一个工作簿 3是新的10行,所以它消除7重复

我的范围(在名称管理器)应当是1:13,但它表明1: 20在底部

'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 

7个空白我做的一切笔记除了代码行,我知道我造成的问题

回答

4

回到公式►名称管理器并重新定义你的allcontacts命名范围以便指:是动态的。类似的,

'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)) 
+0

谢谢一堆,真的很感激它 – CORNAKI