2017-04-18 54 views
-1

enter image description here我正在将来自不同工作簿的数据整合到主工作簿中。但整合后,我需要在删除重复.. 工作表无法获得工作表功能类的匹配属性

工作表
:---------------
任务类别的任务说明/详细分配分配日期预计交付日期实际完成日期状态 :---------------------------------------- --------------------------------- 分析任务1玛雅02-01-2017 19-01-2017 19-01 -2017已完成 分析任务2 Maaya 02-01-2017 19-01-2017 19-01-2017已完成 分析任务3 Maaya 20-01-2017 10-03-2017 10-03-2017已完成 分析任务4 Maaya 20-01 -2017 10-03-2017 10-03-2017完成 编码&测试任务5真绫2017年1月3日2017年10月3日2017年10月3日完成 编码&测试任务5真绫2017年1月3日2017年10月3日持续

下面我的代码能够删除重复...但TASK5有2个状态,如完成和持续。我需要最新的更新数据。

代码是在这里:

Public Sub duplicate_removal() 
Dim Colm, lastrow As String 
Dim i, Value1, Value2 As Integer 
ActiveWorkbook.Worksheets("Work Management").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Work Management").Sort.SortFields.Add 
Key:=Range("F3:F104857"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.Worksheets("Work Management").Sort 
     .SetRange Range("A3:X104857") 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
End With 
Colm = WorksheetFunction.Match("ID", Sheets("Work Management").Rows(1), 0) 
lastrow = ActiveSheet.Cells(Rows.Count, Colm).End(xlUp).Row 
For i = 2 To lastrow 

    Value1 = Range("C" & i).Value 
    Value2 = Range("C" & i + 1).Value 


    If Value1 = Value2 Then 
    Rows(i).Delete 
    End If 

MsgBox ("Duplicates removed ") 

Next 

Application.ScreenUpdating = True 
End Sub 

`

回答

0

里面的代码。你有这样的代码行,

Colm = WorksheetFunction.Match("ID", Sheets("Work Management").Rows(1), 0) 

它正在寻找您的数据中没有的列标题 - “ID”。如果你改变你自己的列标题,你需要。它会工作

+0

好的我已经改变为任务desc ...但仍然在Value2 =范围(“N”和i + 1).Value错位错误13 – Maaya

+0

@Maaya这是一个不同的错误。请在发布代码时发布一个新问题以及您的数据,而不是图片。请接受这个答案,因为它回答了你的问题:) – Sid29

+0

@Maaya你的问题已被回答。接受答案并开始一个新问题! – 2017-04-18 17:45:31