如何解释呢?

时间:2019-06-06 13:42:00

标签: excel vba

我找到了可以在工作表上找到所有PageBreak的代码(在PageSetup之后为自动PB),但我不知道如何解释这种行为。 当我运行代码时,PB与PB相距2行,但是在调试时(无论我在何处放置断点,它都能按预期工作。

我的工作表有100到几千行,首先我根据需要对其进行格式化,然后需要在A列中第2行的每一行之前插入PB。然后,我需要在每个分页符处添加边框(没关系是自动还是手动)。

代码是:

Dim rngBorder As Range
Dim lngLastRow As Long
Dim lngLastCol As Long
Dim lngHPBreak As Long
Dim lngVPBreak As Long
Dim lngRow As Long
Dim lngCol As Long
Dim rngAC As Range

lngCol = 1
With ActiveSheet
    Set rngAC = ActiveCell
    lngLastRow = .UsedRange.Cells(.UsedRange.Rows.Count, 1).Row
    lngLastCol = .UsedRange.Cells(1, .UsedRange.Columns.Count).Offset(1, 0).Column
    .Cells(lngLastRow + 1, 1).Activate

'        lngRow = 1
'        For lngVPBreak = 1 To .VPageBreaks.Count
'            lngCol = 1
'            For lngHPBreak = 1 To .HPageBreaks.Count
'                Set rngBorder = .Range(.Cells(lngRow, lngCol), _
'                .Cells(.HPageBreaks(lngHPBreak).Location.Row - 1, .VPageBreaks(lngVPBreak).Location.Column - 1))
'                rngBorder.BorderAround xlContinuous, xlThick
'                lngRow = .HPageBreaks(lngHPBreak).Location.Row
'            Next
'
'            Set rngBorder = .Range(.Cells(lngRow, lngCol), .Cells(lngLastRow, .VPageBreaks(lngVPBreak).Location.Column - 1))
'            rngBorder.BorderAround xlContinuous, xlThick
'
'            lngCol = .VPageBreaks(lngVPBreak).Location.Column
'        Next
    lngRow = 1
    For lngHPBreak = 1 To .HPageBreaks.Count
    Set rngBorder = .Range(.Cells(lngRow, lngCol), _
    .Cells(.HPageBreaks(lngHPBreak).Location.Row - 1, lngLastCol))

        rngBorder.BorderAround xlContinuous, xlThick
        lngRow = .HPageBreaks(lngHPBreak).Location.Row
    Next
    Set rngBorder = .Range(.Cells(lngRow, lngCol), .Cells(lngLastRow, lngLastCol))
    rngBorder.BorderAround xlContinuous, xlThick
    rngAC.Activate
End With

(我评论了VPageBreaks,因为我不需要它们了)

因此,此代码在PB之后2排边框,然后在第二页上4排边框,然后在6排以外,依此类推。...

但是...当我在VBA中设置断点时...将边界恰好放在需要的地方就可以了。

该如何解释???如何调试这样的代码?????

预先感谢

汤姆

0 个答案:

没有答案