Excel精英培训网

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

[已解决]选中单元格的所在的打印页码

[复制链接]
发表于 2011-1-11 21:39 | 显示全部楼层 |阅读模式
5学分
页面设置未定,即可横可竖,上想甚至1.5也可以,设置成2.5也可以
某单元格被选定,怎么知道该单元格时在该表的第几页的打印范围呢??

谢谢赐教
最佳答案
2011-1-14 08:36
  1. Sub NumberOfPrintedPages()
  2.     Dim HBreaks%, VBreaks%, i%, j%, NumPages&
  3.     Dim Rng As Range
  4.     Dim Sht As Worksheet
  5.     Dim CurPage%
  6.     Set Sht = ActiveSheet
  7.     Sht.DisplayPageBreaks = True
  8.     '计算总页数
  9.     HBreaks = Sht.HPageBreaks.Count
  10.     VBreaks = Sht.VPageBreaks.Count
  11.     NumPages = (HBreaks + 1) * (VBreaks + 1)
  12.     '计算某单元格的当前页
  13.     Set Rng = Selection
  14.     For i = 1 To HBreaks
  15.         If Sht.HPageBreaks(i).Location.Row > Rng.Row Then Exit For
  16.     Next
  17.     For j = 1 To VBreaks
  18.         If Sht.VPageBreaks(j).Location.Column > Rng.Column Then Exit For
  19.     Next
  20.     If Sht.PageSetup.Order = xlOverThenDown Then
  21.         CurPage = (i - 1) * (VBreaks + 1) + j      '记录当前页的页数
  22.     Else
  23.         CurPage = (j - 1) * (HBreaks + 1) + i      '记录当前页的页数
  24.     End If
  25.     MsgBox "第" & CurPage & " 页   共" & NumPages & "页"
  26.     Sht.DisplayPageBreaks = False
  27. End Sub
复制代码

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2011-1-14 02:38 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-14 07:16 | 显示全部楼层
学习学习再学习, 努力努力再努力!!
回复

使用道具 举报

发表于 2011-1-14 08:36 | 显示全部楼层    本楼为最佳答案   
  1. Sub NumberOfPrintedPages()
  2.     Dim HBreaks%, VBreaks%, i%, j%, NumPages&
  3.     Dim Rng As Range
  4.     Dim Sht As Worksheet
  5.     Dim CurPage%
  6.     Set Sht = ActiveSheet
  7.     Sht.DisplayPageBreaks = True
  8.     '计算总页数
  9.     HBreaks = Sht.HPageBreaks.Count
  10.     VBreaks = Sht.VPageBreaks.Count
  11.     NumPages = (HBreaks + 1) * (VBreaks + 1)
  12.     '计算某单元格的当前页
  13.     Set Rng = Selection
  14.     For i = 1 To HBreaks
  15.         If Sht.HPageBreaks(i).Location.Row > Rng.Row Then Exit For
  16.     Next
  17.     For j = 1 To VBreaks
  18.         If Sht.VPageBreaks(j).Location.Column > Rng.Column Then Exit For
  19.     Next
  20.     If Sht.PageSetup.Order = xlOverThenDown Then
  21.         CurPage = (i - 1) * (VBreaks + 1) + j      '记录当前页的页数
  22.     Else
  23.         CurPage = (j - 1) * (HBreaks + 1) + i      '记录当前页的页数
  24.     End If
  25.     MsgBox "第" & CurPage & " 页   共" & NumPages & "页"
  26.     Sht.DisplayPageBreaks = False
  27. End Sub
复制代码

评分

参与人数 2 +5 收起 理由
老糊涂 + 2 阿木老师的代码,学习了
xdwy81129 + 3 啊,原来这么复杂呀,以为几句话或者一句话.

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-1-14 17:59 | 显示全部楼层
回复 阿童木 的帖子

语句可以简单些就好了
回复

使用道具 举报

发表于 2011-1-14 23:19 | 显示全部楼层
要简单代码啊,楼主自己研究吧。
因为Excel中并没有提供直接的属性。
回复

使用道具 举报

 楼主| 发表于 2011-1-14 23:53 | 显示全部楼层
回复 阿童木 的帖子

天,我要可以研究出来估计再等上二十年了

我初步想的也是应该属性提供或者换个什么思路弄出来,当然自己肯定是没有办法研究的了,因为很菜

回复

使用道具 举报

 楼主| 发表于 2011-1-14 23:55 | 显示全部楼层
回复 阿童木 的帖子

我想的是预览里面都可以找到是多少页,那判断这个单元格在预览里面的多少页是不是就可以简化了呢??


回复

使用道具 举报

发表于 2011-1-15 09:55 | 显示全部楼层
跟你说了没有这个属性
回复

使用道具 举报

发表于 2011-1-15 16:43 | 显示全部楼层
阿木老师的代码学习啦
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 11:12 , Processed in 1.097493 second(s), 5 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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