vba 将所有边框添加到选定范围,是否有更短的代码编写方法?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/40451623/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-12 11:28:53  来源:igfitidea点击:

Adding all borders to a selected range, is there a shorter way to write the code?

excelvbaexcel-vbaborder

提问by Tribias

I am adding all borders to a certain range, In my case (A6:O6),in excel VBA, the below code works but I'd imagine there would have to be a shorter way to write it. I found a single line of code that puts a border around the whole selection but not around every cell.

我正在将所有边框添加到某个范围内,在我的情况下(A6:O6),在 excel VBA 中,下面的代码有效,但我想必须有更短的方法来编写它。我找到了一行代码,它在整个选择周围放置了一个边框,但不是在每个单元格周围。

Range("A6:O6").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With

回答by Niclas

Try this. It will add a border around every cell in the range A6:O6.

尝试这个。它将在 A6:O6 范围内的每个单元格周围添加边框。

Sub Macro1()
Dim rng As Range
' Define range
Set rng = Range("A6:O6")

With rng.Borders
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 0
    .TintAndShade = 0
End With
End Sub

回答by Karpak

You can use the below statements

您可以使用以下语句

Dim myRange As Range
Set myRange = Range("A6:O6")

With myRange.Borders
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
End With