Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 11361|回复: 10

[已解决]有条件插入分页符

[复制链接]
发表于 2014-4-23 12:18 | 显示全部楼层 |阅读模式
如果B列单元格记录班级名称,在1班和2班中间、2班和3班中间插入分页符,及下一个单元格的内容和上一个单元格的内容不一样是便插入分页符,(表头列外)请问代码怎么写?
最佳答案
2014-4-23 12:55
本帖最后由 冥王 于 2014-4-23 15:44 编辑

受5楼大师的启发  录制的代码稍作修改
  1. Sub 宏1()
  2.     Dim i%, k%
  3.     k = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
  4.     Application.ScreenUpdating = False
  5.     ActiveSheet.ResetAllPageBreaks   '从论坛高手那学到:在设置之前应该重设所有分页符,避免表格分页符混乱
  6.     For i = 3 To k
  7.         If Cells(i, 2) <> Cells(i - 1, 2) Then
  8.             ActiveSheet.HPageBreaks.Add Before:=Cells(i, 2)
  9.         End If
  10.     Next
  11.     Application.ScreenUpdating = True
  12. End Sub
复制代码
QQ拼音截图未命名.png
发表于 2014-4-23 12:33 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-23 12:39 | 显示全部楼层
本帖最后由 冥王 于 2014-4-23 12:41 编辑

启用宏

41752003-有条件插入分页符.rar

16.23 KB, 下载次数: 97

回复

使用道具 举报

发表于 2014-4-23 12:43 | 显示全部楼层
咱们一起学习
回复

使用道具 举报

发表于 2014-4-23 12:47 | 显示全部楼层
  1. Sub 分页符()
  2. Dim irow%, i%
  3. On Error Resume Next
  4. With Sheet1
  5.    .ResetAllPageBreaks
  6.     irow = .cells(Rows.Count, 2).End(3).Row
  7.   For i = 2 To irow
  8.     If Cells(i, 2) <> Cells(i + 1, 2) Then
  9.       .HPageBreaks.Add Before:=Cells(i + 1, 2)
  10.     End If
  11.   Next
  12. End With
  13. End Sub
复制代码

点评

大师V5  发表于 2014-4-23 13:07
学习高手的代码  发表于 2014-4-23 12:49
回复

使用道具 举报

发表于 2014-4-23 12:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 冥王 于 2014-4-23 15:44 编辑

受5楼大师的启发  录制的代码稍作修改
  1. Sub 宏1()
  2.     Dim i%, k%
  3.     k = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
  4.     Application.ScreenUpdating = False
  5.     ActiveSheet.ResetAllPageBreaks   '从论坛高手那学到:在设置之前应该重设所有分页符,避免表格分页符混乱
  6.     For i = 3 To k
  7.         If Cells(i, 2) <> Cells(i - 1, 2) Then
  8.             ActiveSheet.HPageBreaks.Add Before:=Cells(i, 2)
  9.         End If
  10.     Next
  11.     Application.ScreenUpdating = True
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-23 13:08 | 显示全部楼层
冥王 发表于 2014-4-23 12:55
受5楼大师的启发  录制的代码稍作修改

我可不是大师啊,另外像插入分页符,我的理解是最好加一句重置分页符
ActiveSheet.ResetALLPageBreaks

点评

言之有理,插到最后分页就不一样了!  发表于 2014-4-23 15:33

评分

参与人数 1 +12 收起 理由
冥王 + 12 that's right

查看全部评分

回复

使用道具 举报

发表于 2014-4-23 13:14 | 显示全部楼层
qh8600 发表于 2014-4-23 13:08
我可不是大师啊,另外像插入分页符,我的理解是最好加一句重置分页符
ActiveSheet.ResetALLPageBreaks

大师说的真有道理。先将以前的分页符取消(不管有没有,省着弄乱了)。ActiveSheet.ResetALLPageBreaks,然后,在HpageBreaks.Add
回复

使用道具 举报

发表于 2014-4-23 13:19 | 显示全部楼层
风林火山 发表于 2014-4-23 13:14
大师说的真有道理。先将以前的分页符取消(不管有没有,省着弄乱了)。ActiveSheet.ResetALLPageBreaks, ...

还不是根风林老师学的,像Resize数组前,先清空。
回复

使用道具 举报

发表于 2014-4-23 15:06 | 显示全部楼层
qh8600 发表于 2014-4-23 13:19
还不是根风林老师学的,像Resize数组前,先清空。

又学一招,谢谢老师指点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-9 02:42 , Processed in 0.352375 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表