我目前正在尝试编写一个宏,在适当的时候在每个新页面的顶部插入“标题继续”和“字幕连续”行。为此,我想循环遍历每一行并确定:
目前,对于除字幕和标题本身之外的每一行,字幕和标题分别存储在列C和D中。对于标题和副标题行,列C和D为空白。我遇到的问题是,在第一次插入发生后我变得奇怪。大多数行插入宏都会向后移动,但这在此处不起作用,因为在中断之前插入行之后页面中断会发生变化。这是我写的代码:
Inserts = 0
Dim Counter As Long
Counter = 1
While Counter < RowCount
If Rows(Counter).PageBreak <> -4142 And Cells(Counter, "C").Value <> "" Then
Range("C" & (Counter), "C" & (Counter + 1)).EntireRow.Insert
Cells(Counter, "A").Value = UCase(Cells(Counter + 2, "D").Value) & " continued"
Cells(Counter + 1, "A").Value = UCase(Cells(Counter + 2, "C").Value) & " continued"
Counter = Counter + 3
Inserts = Inserts + 2
ElseIf Rows(Counter).PageBreak <> -4142 And Cells(Counter + 1, "C").Value <> "" Then
Range("C" & Counter).EntireRow.Insert
Cells(Counter, "A").Value = UCase(Cells(Counter + 2, "D").Value) & " continued"
Counter = Counter + 2
Inserts = Inserts + 1
Else: Counter = Counter + 1
End If
Wend
RowCount = RowCount + Inserts - 2
谢谢!
安迪
答案 0 :(得分:1)
更新:此代码实际上按预期工作。问题是电子表格中的其他列正在影响分页符,即使它们超出了打印范围。在此段运行后,我删除了代码中的那些列,因此页面中断后移动,给人的印象是这部分不起作用。将所有自动分页符设置为xlPageBreakManual解决了这个问题,而没有强迫我提前删除列(因为我需要他们的数据)。