Как поместить границы вокруг диапазона слитых и не слитых ячеек - PullRequest
1 голос
/ 26 октября 2019

Мне нужен макрос, который помещает границу в диапазон ячеек от A до F, основываясь на форматировании в столбце A. В столбце A ячейки могут быть объединены с несколькими ячейками под ним или могут быть просто одной ячейкой. Я написал код VBA, чтобы поместить границу вокруг непустых ячеек в столбце A, но не знаю, как расширить его до остальных 5 столбцов (от B до F). См. Рисунки, чтобы лучше понять, что я написал и что мне нужно.

Как выглядят данные: Данные

Что делает мой код: WhatMyCodeDoes

Что я хочу сделать: WhatIWantItToDo

Мой код:

Sub Borders()
Dim linestyle As Variant, line   As Variant
Range("A1").Select
Do While ActiveCell.Address <> Range("A65536").End(xlUp).Offset(1, 0).Address
If ActiveCell.Value > 0 Then
 linestyle = Array(xlDiagonalDown, xlDiagonalUp, xlInsideVertical, xlInsideHorizontal)
line = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
For I = 0 To UBound(linestyle)
Selection.Borders(linestyle(I)).linestyle = xlNone
    With Selection.Borders(line(I))
        .linestyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    Next I
Else
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

1 Ответ

1 голос
/ 26 октября 2019

Вы можете изменить только две строки и все будет в порядке.

'Range("A1").Select
Range("A1").Resize(1, 6).Select
' ...

'ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(1, 0).Resize(1, 6).Select
...