Excel VBA:网格线帮助

时间:2018-09-20 04:40:56

标签: excel vba

我有工作表1中从A列到M列的详细信息。

我需要从A列到M都实现网格线。

复杂的部分是,工作表1中有3个不同的表,其中我需要根据“使用范围”为所有这3个表分别实现网格线。

我有相同的宏,但是它只是通过为3个表实现网格线来工作。请参阅屏幕截图以获取输出。

Screenshot

2 个答案:

答案 0 :(得分:0)

使用range.CurrentRegion属性隔离每个数据块。

dim i as long

with worksheets("sheet1")

    if isempty(.cells(1, "A")) then
        i = .cells(1, "A").end(xldown).row
    else
        i = 1
    end if

    do while i < .rows.count

        with .cells(i, "A").currentregion
            'do the border formatting here
            'example:
            With .Borders
                .LineStyle = xlContinuous
                .Color = vbRed
                .Weight = xlThin
            End With

            debug.print .address(0, 0)
        end with

        i = .cells(i, "A").end(xldown).end(xldown).row

    loop

end with

答案 1 :(得分:0)

以您的数据布局示例为例,您还可以使用SpecialCells()对象的Range方法

Dim area As Range

For Each area In ActiveSheet.UsedRange.SpecialCells(XlCellType.xlCellTypeConstants).Areas
    With area.Borders
        .LineStyle = xlContinuous
        .Color = vbBlack
        .Weight = xlThin
    End With
Next