Я бы подумал, что в VBA есть способ установить 4 границы стены для каждой ячейки в диапазоне, но мне еще предстоит выяснить или найти такую. По сути, я хочу, чтобы диапазон, такой как (A1:R780), имел свой квадрат.

2 ответа2

1

Я не знаю более эффективного способа, чем этот.

With Range("A1:R780")
    .Borders(xlInsideVertical).LineStyle = xlContinuous
    .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    .BorderAround xlContinuous
End with

Хотя я верю, это тоже сработает.

Range(“A1:R780").Borders.LineStyle = xlContinuous 
0

Как я это сделал ... Строка ошибки находится в том случае, если в области нет вертикальных или горизонтальных линий. Честно говоря, изначально я не использовал BorderAround, я использовал xlEdgeBottom, xlEdgeTop, xlEdgeLeft, xlEdgeRight.

Я должен был использовать вызов 5 раз, иначе причина для того, чтобы сделать это подпрограммой, плюс они были динамическими.

Образец звонка

Call BoxIt(Range("A1:z25"))

подпрограмма

Sub BoxIt(aRng As Range)
On Error Resume Next

    With aRng

        'Clear existing
        .Borders.LineStyle = xlNone

        'Apply new borders
        .BorderAround xlContinuous, xlThick, 0
        With .Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .Weight = xlMedium
        End With
        With .Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .Weight = xlMedium
        End With
    End With

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .