VBA代码,若b列第i行和i+1行是空值,i是大于29且最接近29,则在第i行插入分页符,然后每i行插入分页符
时间: 2024-05-14 10:19:33 浏览: 164
这是一个比较具体的问题,需要在具体代码实现中考虑各种细节。以下是一个基础的实现方式:
```
Sub InsertPageBreaks()
Dim lastRow As Long
Dim i As Long
' 获取最后一行的行号
lastRow = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row - 1
' 从第30行开始循环,每次检查当前行和下一行的B列是否都为空值
For i = 30 To lastRow
If IsEmpty(Range("B" & i)) And IsEmpty(Range("B" & i + 1)) Then
' 插入分页符
ActiveSheet.HPageBreaks.Add Range("A" & i)
' 取最接近29的行
If i > 29 And i - 29 <= i - 1 - 29 Then
ActiveSheet.HPageBreaks.Add Range("A" & i)
Else
ActiveSheet.HPageBreaks.Add Range("A" & i - 1)
End If
' 跳过下一行
i = i + 1
End If
Next i
End Sub
```
这个代码会将当前工作表中满足条件的行(即B列为空值的行和下一行)插入分页符,并且会满足要求中提到的在i行和最接近29的行之间插入分页符的需求。注意,这段代码并没有对“最接近29的行”的情况进行非常合理的处理,如果有特殊的需求可能需要对代码进行修改。
阅读全文