我有一个问题,我相信你会找到一个简单的解决方案 我很满意这个
我有从其他工作簿复制范围的代码,将其粘贴到当前工作簿中,然后删除重复项
问题是,在删除重复项后,它认为范围仍然与删除重复项之前一样长(包括空格)
示例:
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
除了我知道导致问题的代码行之外,我做了所有注释
答案 0 :(得分:4)
返回公式►名称管理器并重新定义所有联系命名范围,以便参考:是动态的。像,
'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))