Excel VBA在分页符

时间:2016-11-22 06:33:27

标签: excel vba excel-vba

目前正在进行一些大型的文书工作。所以我需要帮助。

我正在寻找在特定工作表的每个分页符下添加 3个新行的方法。

Sub WhereIsPageBreak()
Dim ws As Worksheet
Dim x As Integer
x = 1
Set ws = Sheets("2ND SEM 2013")

With ws.HPageBreaks
    If .Count > 0 Then
        For Each x In .Item
            .Item(x).Location.Insert
            .Item(x).Location.Insert
            .Item(x).Location.Insert
        Next
    Else
        MsgBox "No Page Breaks on this Sheet"
    End If
End With
End Sub

这就是我所做的,但遗憾的是它不起作用。

我只对VBA有一点了解,对于这种愚蠢的逻辑感到遗憾

2 个答案:

答案 0 :(得分:0)

我更改了循环条件,因为x已经指向分页符索引,因此您不必使用For..Each

检查以下代码。

Sub WhereIsPageBreak()
Dim ws As Worksheet
Dim x As Integer

Set ws = Sheets("2ND SEM 2013")

With ws.HPageBreaks
    If .Count > 0 Then
        For x = 1 To .Count
            .Item(x).Location.Insert
            .Item(x).Location.Insert
            .Item(x).Location.Insert
        Next
    Else
        MsgBox "No Page Breaks on this Sheet"
    End If
End With
End Sub

答案 1 :(得分:0)

以下代码将遍历HPageBreaks表格中的所有ws,并会在当前HPageBreak的最后一行下方插入3行。

代码

Option Explicit

Sub WhereIsPageBreak()

Dim ws As Worksheet
Dim PgBreak     As HPageBreak

Set ws = Sheets("2ND SEM 2013")      
With ws
    If .HPageBreaks.Count > 0 Then
        For Each PgBreak In .HPageBreaks
            PgBreak.Location.Insert
            PgBreak.Location.Insert
            PgBreak.Location.Insert
        Next
    Else
        MsgBox "No Page Breaks on this Sheet"
    End If
End With

End Sub

编辑1 :如果您想添加3行代码,而不是3代码行,请使用以下代码行:

.Range(PgBreak.Location.Offset(1, 0), PgBreak.Location.Offset(3, 0)).EntireRow.Insert