Мне нужно создать электронную таблицу предстоящих событий, и я использую макрос, который создает толстую линию, отделяющую каждую дату от даты над ней. Он основан на изменении значения в столбце «Дата». Однако иногда мне приходится фильтровать данные по другому критерию (например, округ). В этих случаях используемый мной макрос смещения не всегда работаетТак как данные, которые изменяют и производят линию, находятся в скрытой строке, и, следовательно, линия тоже. Может ли кто-нибудь помочь?
Я пробовал различные способы определения диапазона только как активные ячейки, ноЯ не думаю, что я делаю это правильно.
Макрос, который я использую, заключается в следующем, без применения к скрытым строкам:
Sub UpcomingLines()
Application.ScreenUpdating = False
Dim LastRow As Long
LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim rng As Range
For Each rng In Range("A1:A100" & LastRow)
If rng <> rng.Offset(1, 0) Then
Range("A" & rng.Row & ":H" & rng.Row).Borders(xlEdgeBottom).Weight = xlThick
End If
Next rng
Application.ScreenUpdating = True
End Sub
Я пытался интегрировать SpecialCells, какthis:
Sub UpcomingLines()
Application.ScreenUpdating = False
Dim LastRow As Long
LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim rng As Range
Set myrange = Range("A1:H" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each rng In Range("A1:A100" & LastRow)
If rng <> rng.Offset(1, 0) Then
Range("A" & myrange.Row & ":H" & rng.Row).Borders(xlEdgeBottom).Weight = xlThick
End If
Next rng
Application.ScreenUpdating = True
End Sub
Тем не менее, это создает строки в местах, которые мне не нужны - в основном, отображение между изменениями даты, но также везде, где есть скрытая строка, даже если даты нетизменить до или после скрытого ряда.