Todo o equivalente de Bordas no Excel para um intervalo

0

Eu acho que existe uma maneira no VBA de colocar as 4 bordas de parede para cada célula em um intervalo, mas eu ainda tenho que descobrir ou encontrar uma. Basicamente eu quero um intervalo como (A1: R780) para todos têm seu próprio quadrado.

    
por Crazyd 15.03.2016 / 02:20

2 respostas

1

Eu não conheço uma maneira mais eficiente do que isso.

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

Por mais que acredite, isso também funcionaria.

Range(“A1:R780").Borders.LineStyle = xlContinuous 
    
por 15.03.2016 / 04:01
0

Como eu fiz isso ... A linha de erro está no caso da área não ter linhas verticais ou horizontais. Honestamente originalmente eu não usei BorderAround Eu usei xlEdgeBottom, xlEdgeTop, xlEdgeLeft, xlEdgeRight.

Eu tive que usar a chamada 5 vezes como razão para torná-la uma sub-rotina, além de serem dinâmicas.

Chamada de Amostra

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

Sub-rotina

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
    
por 18.03.2016 / 17:40