У меня проблема с кодом сортировки. Моя цель - отсортировать область по типу адреса. Каждый человек имеет несколько учетных записей, и его имя находится в объединенной области, которая существует до тех пор, пока существуют учетные записи. Таким образом, из "B3: B6" объединяется для первого.
Однако иногда эти люди имеют разные адреса под каждой учетной записью. Итак, я хотел бы отсортировать каждую область, в этом примере «C3: H6», по значениям в столбце E. Но когда я пробегаю построчно, она не выполняется.
КОД:
With NeedMail
rwCnt = .Cells(Rows.Count, 1).End(xlUp).Row
For y = 3 To rwCnt
If .Cells(y, 2).MergeCells Then
Set mrg = .Range(.Cells(y, 2).MergeArea.Address)
Set srt = .Range(mrg.Offset(0, 1).Address & ":" & mrg.Offset(0, 6).Address)
Set keyRng = .Range(mrg.Offset(0, 3).Address)
cnt = .Cells(y, 2).MergeArea.Rows.Count
Z = y + cnt - 1
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=keyRng, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange srt
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
mrg.UnMerge
'More code to execute here
End If
Next y
End With
ОБРАЗЦЫ ДАННЫХ:
Заранее спасибо, я ломал голову, пытаясь понять, что не так?