Доброго времени суток мастерам макросов и Гуру тайных знаний.
Ломаю голову над задачкой:
Необходимо в существующем массиве провести фильтрацию макросом по первому столбцу по убыванию от а до я (настраиваемой сортировкой макрорекодер вроде немного помог). Дальше необходимо очистить дубликаты значений в первом столбце, так чтобы первое сверху значение осталось, а остальные очистились (значение ячейки очистилось) без удаления ячеек или строк, при этом сторонний текст на листе не должен пострадать (если это конечно вообще реализуемо)
Код
Sub Filtr_chistka()
'
' чистка Макрос и построение
'
'
Columns("F:H").Select
ActiveWorkbook.Worksheets("итог").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("итог").Sort.SortFields. _
Add Key:=Range("F2:F15"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("итог").Sort
.SetRange Range("F1:H15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
В ходе активных поисков был найден макрос мастера RAN:
Скрытый текст
Код
Sub Мяу()
Dim arr, i&, j&
arr = ActiveSheet.UsedRange.Value
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
If .exists(arr(i, j)) Then
arr(i, j) = Empty
Else
.Item(arr(i, j)) = 1
End If
Next
Next
End With
ActiveSheet.UsedRange = arr
End Sub
но я пока не понимаю как его прикрутить или что вообще можно использовать, чтобы сторонний текст не пострадал. Вся эта процедура направлена, чтобы потом можно было быстро и просто строить график. Может кто поделиться мудростью да направит на путь истинный= в любом случае спасибо.
Catboyun Спасибо, что нашли время= Обалденный регулируемый график. Проблема в том что, руками я знаю как это сделать, но мне нужно раскрутить это именно макросом (это часть макроса которую почти удалось добить= остался этот кусочек на финишной прямой).
Sub Filtr_chistka()
'
' чистка Макрос и построение
'
'
'Columns("F:H").Select
a = Cells(Rows.Count, "F").End(xlUp).Row
ActiveWorkbook.Worksheets("итог").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("итог").Sort.SortFields. _
Add Key:=Range("F2:F" & a), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("итог").Sort
.SetRange Range("F1:H" & a)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For i = a To 2 Step -1
If Cells(i, 6) = Cells(i - 1, 6) Then
Cells(i, 6).ClearContents
End If
Next i
End Sub