у меня ниже данных
Empid Empname salary Company location status
xx Jhon 100 IBM us
x1 Phil 50 IBM us
x2 Karl 30 IBM us
x3 Steve 20 IBM us
x4 jacob 70 Oracle uk
x5 jason 30 Oracle uk
x6 stuart 50 Oracle uk
zz jay 150 Oracle uk
x10 Steve1 20 IBM ind
x9 Steve2 20 IBM nj
Я должен разделить записи в зависимости от компании и местоположения. Так что я получу ниже двух наборов записей.
Первый сет
Empid Empname salary company Location status
xx Jhon 100 IBM us
x1 Phil 50 IBM us
x2 Karl 30 IBM us
x3 Steve 20 IBM us
Второй набор
Empid Empname salary company Location status
x4 jacob 70 Oracle uk
x5 jason 30 Oracle uk
x6 stuart 50 Oracle uk
zz jay 150 Oracle uk
В вышеприведенных наборах XX zz являются основными записями. Я проверяю, х1 + х2 + х3 = хх зарплата. Если он равен, то я пишу как соответствует в статусе столбца для этого набора, в противном случае я игнорирую Последние две строки в исходных листах следует игнорировать, поскольку в них нет основной записи.
Sub Tester()
Const COL_COMP As Integer = 4
Const COL_LOC As Integer = 5
Const VAL_DIFF As String = "XXdifferentXX"
Dim d As Object, sKey As String
Dim rw As Range, opt As String, rngData As Range
Dim rngCopy As Range
Dim FirstPass As Boolean
With Sheet1.Range("A1")
Set rngData = .CurrentRegion.Offset(1).Resize( _
.CurrentRegion.Rows.Count - 1)
End With
Set rngCopy = Sheet2.Range("A2")
Set d = CreateObject("scripting.dictionary")
FirstPass = True
redo:
For Each rw In rngData.Rows
sKey = rw.Cells(COL_COMP).Value & "<>" & _
rw.Cells(COL_LOC).Value
'Here i have to make different sets of data.
Next rw
If FirstPass Then
FirstPass = False
GoTo redo
End If
End Sub