2016-01-04 31 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