Я бы подумал, что в VBA есть способ установить 4 стены для каждой ячейки в диапазоне, но мне еще предстоит выяснить или найти такую. По сути, я хочу, чтобы диапазон, такой как (A1: R780), имел свой квадрат.
возможный дубликат http://stackoverflow.com/questions/13121425/border-around-each-cell-in-a-range
Musselman 8 лет назад
1
Более простой вопрос не смотрел на Stack Over Flow из-за того, что на самом деле это не вопрос программирования.
Crazyd 6 лет назад
0
2 ответа на вопрос
1
damik_
Я не знаю более эффективного способа, чем этот.
With Range("A1:R780") .Borders(xlInsideVertical).LineStyle = xlContinuous .Borders(xlInsideHorizontal).LineStyle = xlContinuous .BorderAround xlContinuous End with
Хотя я верю, это тоже сработает.
Range(“A1:R780").Borders.LineStyle = xlContinuous
Спасибо, я на самом деле нашел гораздо более сложный способ сделать это ... вероятно, за 10 минут до того, как вы ответили ... только сейчас проверил, есть ли более простой способ ... У меня было 6 команд, чтобы сделать ту же самую основную вещь , Второй не работал, но с Range работал.
Crazyd 8 лет назад
0
0
Crazyd
How I did it... The on error line is in case the area doesn't have Vertical or Horizontal lines. Honestly originally I didn't use BorderAround I used xlEdgeBottom, xlEdgeTop, xlEdgeLeft, xlEdgeRight.
I had to use call 5 times aka reason for making it a subroutine, plus they were dynamic.
Sample Call
Call BoxIt(Range("A1:z25"))
Subroutine
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