【Excel】【VBA】根据内容调整打印区域

Excel VBA:自动调整打印区域的实用代码解析

在Excel中,我们经常需要调整打印区域。今天介绍一段VBA代码,它可以根据C列的内容自动调整打印区域。
在这里插入图片描述

Dim ws As Worksheet
Dim lastRow As Long
Dim r As Long

' 设置当前工作表
Set ws = ActiveSheet

' 找到C列最后一个非空单元格的行号
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

' 从后往前查找C列中第一个非0的值
For r = lastRow To 1 Step -1
    If ws.Cells(r, "C").Value <> 0 Then
        lastRow = r
        Exit For
    End If
Next r

' 设置打印区域(从C1到Y列的最后一行)
ws.PageSetup.PrintArea = "$C$1:$Y$" & lastRow

If Err.Number <> 0 Then
    MsgBox "设置打印区域时出错: " & Err.Description
Else
    MsgBox "打印区域已成功调整为 $C$1:$Y$" & lastRow
End If

On Error GoTo 0

1. 基础结构和错误处理

Sub AdjustPrintArea()
    On Error Resume Next
    
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim r As Long
  • Sub 用于声明一个子程序,AdjustPrintArea()是程序名
  • On Error Resume Next 是错误处理语句,允许程序在出错时继续执行
  • Dim 用于声明变量
    • ws As Worksheet 声明工作表对象
    • Long 用于声明大整数类型变量

2. 工作表引用

Set ws = ActiveSheet
  • Set 用于给对象变量赋值
  • ActiveSheet 表示当前活动的工作表
  • 这行代码创建了对当前工作表的引用

3. 查找最后一行

lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

这是一个常用的Excel VBA技巧:

  • ws.Rows.Count 获取工作表的最大行数
  • End(xlUp) 从底部向上查找第一个非空单元格
  • .Row 获取行号

4. 遍历查找非零值

For r = lastRow To 1 Step -1
    If ws.Cells(r, "C").Value <> 0 Then
        lastRow = r
        Exit For
    End If
Next r
  • For...To...Step 是VBA的循环结构
    • Step -1 表示倒序遍历
  • If...Then 是条件判断语句
  • Exit For 用于提前退出循环
  • Cells(r, "C") 引用特定单元格
  • .Value 获取单元格的值

5. 设置打印区域

ws.PageSetup.PrintArea = "$C$1:$Y$" & lastRow
  • PageSetup.PrintArea 用于设置打印区域
  • & 是字符串连接符
  • $ 表示绝对引用
  • 这行代码将打印区域设置为C1到Y列的最后一个非零行

6. 结果反馈

If Err.Number <> 0 Then
    MsgBox "设置打印区域时出错: " & Err.Description
Else
    MsgBox "打印区域已成功调整为 $C$1:$Y$" & lastRow
End If

On Error GoTo 0
  • Err.Number 获取错误代码
  • MsgBox 显示消息框
  • On Error GoTo 0 恢复正常的错误处理

使用技巧

  1. 该代码可以放在标准模块中
  2. 可以通过快捷键或按钮调用
  3. 适用于需要经常调整打印区域的场景

注意事项

  1. 代码只检查C列的值
  2. 打印区域的宽度固定为C到Y列
  3. 如果C列全为0,打印区域将只包含第一行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973456.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wps中zotero插件消失,解决每次都需要重新开问题

参考 查看zotero目录 D:\zotero\integration\word-for-windows 加载项点击 dotm即可 长期解决 把dom 复制到 C:\Users\89735\AppData\Roaming\kingsoft\office6\templates\wps\zh_CN还是每次都需要重新开的话 重新加载一下

【Java八股文】09-计算机操作系统面试篇

文章目录 计算机操作系统面试篇用户态和内核态的区别&#xff1f;用户态和内核态的区别&#xff1f; 进程管理线程和进程的区别是什么&#xff1f;进程&#xff0c;线程&#xff0c;协程的区别是什么&#xff1f;创建一个协程的过程线程运行过程中申请到的东西在切换时是否全部…

CPU安装pytorch(别点进来)

终于&#xff01; 深度学习环境配置5——windows下的torch-cpu1.2.0环境配置_requirement怎么写torch cu-CSDN博客

echarts找不到了?echarts社区最新地址

前言&#xff1a;在之前使用echarts的时候&#xff0c;还可以通过上边的导航栏找到echarts社区&#xff0c;但是如今的echarts变更之后&#xff0c;就找不到echarts社区了。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 如今…

什么是事务?并发事务引发的问题?什么是MVCC?

文章目录 什么是事务&#xff1f;并发事务引发的问题&#xff1f;什么是MVCC&#xff1f;1.事务的四大特性2.并发事务下产生的问题&#xff1a;脏读、不可重复读、幻读3.如何应对并发事务引发的问题&#xff1f;4.什么是MVCC&#xff1f;5.可见性规则&#xff1f;参考资料 什么…

【算法基础】--前缀和

前缀和 一、一维前缀和示例模板[寻找数组的中心下标 ](https://leetcode.cn/problems/tvdfij/description/)除自身以外的数组乘积和可被k整除的子数组 一、一维前缀和 前缀和就是快速求出数组某一个连续区间内所有元素的和。 示例模板 已知一个数组arr&#xff0c;求前缀和 …

【含文档+PPT+源码】基于Django的新闻推荐系统的设计与实现

项目介绍 本课程演示的是一款基于Django的新闻推荐系统的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中&#xff0c;智能推荐系统作为内容中台的核心引擎&#xff0c;承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开&#xff0c;通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

如何在WPS打开的word、excel文件中,使用AI?

1、百度搜索&#xff1a;Office AI官方下载 或者直接打开网址&#xff1a;https://www.office-ai.cn/static/introductions/officeai/smartdownload.html 打开后会直接提示开始下载中&#xff0c;下载完成后会让其选择下载存放位置&#xff1a; 选择位置&#xff0c;然后命名文…

QML 实现一个动态的启动界面

QML 实现一个动态的启动界面 一、效果查看二、源码分享三、所用到的资源下载 一、效果查看 二、源码分享 工程结构 main.qml import QtQuick import QtQuick.Controls import QtQuick.Dialogs import Qt.labs.platformWindow {id:windowwidth: 640height: 400visible: truetit…

springboot之解析请求参数时,无法获取方法参数的名称。

主要报错信息&#xff1a; java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the ‘-parameters’ flag. 改bug过程&#x…

开源免费文档翻译工具 可支持pdf、word、excel、ppt

项目介绍 今天给大家推荐一个开源的、超实用的免费文档翻译工具&#xff08;DeeplxFile&#xff09;&#xff0c;相信很多人都有需要翻译文档的时刻&#xff0c;这款工具就能轻松解决你的需求。 它支持多种文档格式翻译&#xff0c;包括 Word、PDF、PPT、Excel &#xff0c;使…

Github 开源 AI 知识库推荐

今天来聊聊那些好用的 GitHub 上开源的 AI 知识库。这些项目不仅能让开发者们快速上手&#xff0c;还能帮助我们解决实际问题&#xff0c;甚至让我们的应用更加智能化。它们为企业、开发者和研究人员提供了强大的工具&#xff0c;用于管理和查询海量的知识信息。废话不多说&…

uni-app开发app时 使用uni.chooseLocation遇到的问题

问题一&#xff1a;不显示 问题二&#xff1a;选择地址列表一直在加载中 因为 uni-app 接口文档 中已经说明&#xff0c;使用腾讯的话需要开启云服务&#xff0c;具体可看官网&#xff0c;这就是为什么使用时直接不显示的原因&#xff0c;所以我使用的高德&#xff0c;但又出现…

Cython学习笔记1:利用Cython加速Python运行速度

Cython学习笔记1&#xff1a;利用Cython加速Python运行速度 CythonCython 的核心特点&#xff1a;利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速&#xff08;1&#xff09;使用pip安装 cython 和 setuptools 库&#xff08;2&…

【Deepseek】Linux 本地部署 Deepseek

前言 本文介绍在 Linux 系统上部署 Deepseek AI。本文教程是面向所有想体验 AI 玩家的一个简易教程&#xff0c;因此即使是小白也可以轻松完成体验&#xff0c;话不多说立马着手去干。 [注]&#xff1a;笔者使用的系统为 Ubuntu 24.10 1. 关于 ollama Ollama 是一款开源应用…

【python】网页批量转PDF

安装wkhtmltopdf 网站&#xff1a;wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…

JSON格式,C语言自己实现,以及直接调用库函数(一)

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。以下为你提供不同场景下常见的 JSON 格式示例。 1. 简单对象 JSON 对象是由键值对组成&#xff0c;用花括号 {} 包裹&…

Web自动化之Selenium 超详细教程(python)

Selenium是一个开源的基于WebDriver实现的自动化测试工具。WebDriver提供了一套完整的API来控制浏览器&#xff0c;模拟用户的各种操作&#xff0c;如点击、输入文本、获取页面元素等。通过Selenium&#xff0c;我们可以编写自动化脚本&#xff0c;实现网页的自动化测试、数据采…

【Cadence射频仿真学习笔记】Pcell Designer设计电感学习笔记

Cadence的Pcell designer官方入门教程 一、下载Pcell Designer 首先&#xff0c;前往Cadence网站下载Pcell Designer软件 &#xff08;具体安装过程就不记录了&#xff0c;大家自己去看视频吧&#xff09; 二、创建新的P-cell 然后打开Virtuoso&#xff0c;点击Tools->…