ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ysjjess

[求助] 固定纸张大小,选择区域打印

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-13 20:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 hzruziniu 于 2024-8-13 20:30 编辑
ysjjess 发表于 2024-8-13 17:03
我在想另外一种方式,但我不会,点打印的时候把未选择的区域用代码设置为白色,这样区域还在,选择的区域 ...

不懂你的意思,你原来的要求是每选择一次打印一次,只打印表头和选择区域,不选择的不打印,我的代码没有错,你究竟要达到什么目的我不理解。还是打印的纸是原来打印过的,从下面空白行接上去。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-14 08:58 | 显示全部楼层
hzruziniu 发表于 2024-8-13 20:27
不懂你的意思,你原来的要求是每选择一次打印一次,只打印表头和选择区域,不选择的不打印,我的代码没有 ...

就是一张纸,第一次有打印比如说1-5行,第二次接着第6行开始打印,这个打印区域我自己选择,打印到上次打印的同一张纸上1-5行下方空白处继续打印,谢谢!

TA的精华主题

TA的得分主题

发表于 2024-8-14 15:40 | 显示全部楼层
hzruziniu 发表于 2024-8-13 20:27
不懂你的意思,你原来的要求是每选择一次打印一次,只打印表头和选择区域,不选择的不打印,我的代码没有 ...

他的意思就是打印银行存折一样,一次次累加打印上去,有发生接着往下打

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-15 14:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
aodo 发表于 2024-8-14 15:40
他的意思就是打印银行存折一样,一次次累加打印上去,有发生接着往下打

对,就是这个意思,找了很多代码都没实现

TA的精华主题

TA的得分主题

发表于 2024-8-15 16:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ysjjess 发表于 2024-8-15 14:18
对,就是这个意思,找了很多代码都没实现

实在没有办法按照我上面的用个辅助页绝对可行,就是把要打印的输出到对应位置,打完清空,周而复始

TA的精华主题

TA的得分主题

发表于 2024-8-15 20:07 | 显示全部楼层
参与一下,想法是,复制当前表,然后需要打印的区域保持不变,其他补打印的区域的字体、填充、边框变白,然后打印,再复制原来数据回来,变通一下,仅供参考。。。
image.png

指定打印.zip

20.15 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2024-8-15 20:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
代码如下。。。。
Sub SelectPrintArea()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim selectedRange As Range, rng As Range
'    On Error Resume Next
    Sheet1.Copy after:=Sheet1: ActiveSheet.Name = "临时"
    Sheet1.Activate
    Set selectedRange = Application.InputBox("请选择要打印的区域", "选择打印区域", Type:=8)
    If Err.Number <> 0 Then
        MsgBox "您未选择有效区域,操作取消。"
        Exit Sub
    End If
    For Each rng In Sheet1.UsedRange
        If Intersect(rng, selectedRange) Is Nothing Then
            rng.Font.ColorIndex = 2
            rng.Borders.ColorIndex = 2
            rng.Interior.ColorIndex = 2
        End If
    Next
    With ActiveSheet.PageSetup
        .Zoom = False
      .PrintArea = Sheet1.[a1].CurrentRegion.Address
      .FitToPagesWide = 1
      .FitToPagesTall = 1
    End With
    ActiveSheet.PrintOut
    Sheets("临时").UsedRange.Copy Sheet1.[a1]
    Sheets("临时").Delete
    Beep
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-16 09:31 | 显示全部楼层
quqiyuan 发表于 2024-8-15 20:08
代码如下。。。。
Sub SelectPrintArea()
    Application.ScreenUpdating = False

谢谢你!但是还是不能用,设置了区域为A5:L7打印出来还是A1:L7,不知道是不是我输入要打印内容区域有问题,如果是我输入区域问题,请指教怎么输入

TA的精华主题

TA的得分主题

发表于 2024-8-16 09:40 来自手机 | 显示全部楼层
ysjjess 发表于 2024-8-16 09:31
谢谢你!但是还是不能用,设置了区域为A5:L7打印出来还是A1:L7,不知道是不是我输入要打印内容区域有问 ...

我试过,可以的,弹出对活话框时,你在表格上选择区域。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-16 09:57 | 显示全部楼层
quqiyuan 发表于 2024-8-16 09:40
我试过,可以的,弹出对活话框时,你在表格上选择区域。

我已经解决了,还是谢谢你!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 13:56 , Processed in 0.037844 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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