VBA代码解决方案第二十三讲 EXCEL中,如何删除工作表中的空白行

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第二十三讲 EXCEL中,如何删除工作表中的空白行

【分享成果,随喜正能量】99 万物皆有灵,草木亦有心。这世间,万事万物都是有回音的,大至一世界,小至一微粒,你拿出十分的善意,定会收到它以一百分的温柔回馈。。

第二十三讲 EXCEL中,如何删除工作表中的空白行

今日讲解VBA代码解决方案之二十三,EXCEL中,如何删除工作表中的空白行,这里要首先讲解的是Range对象的Delete方法,此方法用于删除对象。

语法:expression.Delete(Shift)

参数

a) expression是必需的,返回一个Range对象。

b) Shift是可选的,指定删除单元格时替补单元格的移位方式。可为以下 XlDeleteShiftDirection常量之一:xlShiftToLeft或xlShiftUp。如果省略该参数,则Microsoft Excel将根据区域的图形决定移位方式。

1 利用Range对象的Delete方法删除空白行的代码

下面我们将就实际的应用来讲解如何应用DELETE方法,这个方法也是VBA中应用中的非常广泛的。可以用于VALUE的删除,也可以用于格式的删除,还可以用于行的删除等等,今日讲解的就是行的删除。要根据具体的条件来选择删除的对象,这就要根据实际问题的来做具体的判断,这里我要讲解的是“如何删除空白行”,这个问题。这个问题也是在实际工作中应用的最为广泛的方法。下面我们看代码:

Sub mynz_23() '第23讲 EXCEL中,如何删除工作表中的空白行

Dim rRow As Long

Dim LRow As Long

Dim i As Long

rRow = Sheets("23").UsedRange.Row '首行

LRow = rRow + Sheets("23").UsedRange.Rows.Count - 1 '尾行

For i = LRow To rRow Step -1

If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then

Rows(i).Delete

End If

Next

End Sub

代码窗口:

2 实例代码的解读及运行结果

代码解析:mynz_23过程删除工作表中已使用的区域的所有空行。

1) 第5行代码获得工作表中已使用区域的首行行号,其中使用UsedRange属性返回工作表中已使用的区域。

2) 第6行代码获得工作表中已使用区域的最后一行行号。

3) 第7行到第11行代码从最大行数至最小行数循环判断指定行是否为空行,若为空行则删除该行。

4) 其中第8、9行代码使用工作表CountA函数判断当前行已使用单元格的数量,如果为零说明此行是空行则使用Delete删除。

5) UsedRange属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象,即返回工作表中已使用的单元格区域。

6) WorksheetFunction.CountA 方法 用于计算非空单元格及参数列表中值的个数。

7) Application.WorksheetFunction.CountA(Rows(i)) 表示选中Rows(i)行的非空单元格的个数。

  • UsedRange.Row表示已用单元格第一行的序数; UsedRange.Rows.Count表示已用单元格总的行数;
  • 需要注意点是: 此处一定要从最大行数至最小行数开始循环判断,因为如果工作表中存在两行及两行以上的相邻空行,从最小行数开始循环删除的话,当第一行空行被删除后,被删除行下面的一行会往上移位,而此时For...Next循环的计数器已经加1,所以会出现漏删除的现象。

代码的运行情况:

运行后的结果:

今日内容回向:

1 删除工作表行数的思路是什么?

2 UsedRange.Row 意义是什么?

3 Application.WorksheetFunction.CountA(Rows(i)) 是什么意义?

本讲内容参考程序文件:VBA代码解决方案修订(22-26).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:



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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch--tensor.view()

在 PyTorch 中,tensor.view() 是一个常用的方法,用于改变张量(Tensor)的形状(shape),但不会改变其数据本身。它类似于 NumPy 的 reshape(),但有一些关键区别。 1. 基本用法 import …

【机器学习】——机器学习思考总结

摘要 这篇文章深入探讨了机器学习中的数据相关问题,重点分析了神经网络(DNN)的学习机制,包括层级特征提取、非线性激活函数、反向传播和梯度下降等关键机制。同时,文章还讨论了数据集大小的标准、机器学习训练数据量的…

CoAP Shell 笔记

CoAP Shell 笔记 1. 概述 CoAP (Constrained Application Protocol) 是一种专为物联网 (IoT) 中资源受限的节点和网络设计的 RESTful Web 传输协议。CoAP Shell 是一个基于命令行的交互式工具,用于与支持 CoAP 的服务器进行交互。 2. 主要功能 协议支持&#xff…

【最新】探索CFD的未来:从OpenFOAM到深度学习,全面解析计算流体力学的顶级资源与前沿技术

计算流体力学(CFD)作为现代工程与科学研究的核心工具,正以前所未有的速度迈向智能化与多物理场耦合的新时代。本文全面梳理了在线学习CFD的顶级资源,涵盖了从传统数值模拟到深度学习驱动的物理信息模型的广泛领域,旨在为研究者、工程师和学生提供一站式参考指南。内容分为…

[leetcode]2492. 两个城市间路径的最小分数(并查集 排序后建边)

题目链接 题意 给定一个 n n n个点 m m m条边的无向图 每条边有边权 求1-n的路径中最小的边权是多少 每条路可以重复走 思路 把边按边权降序排序 用并查集维护连通性 遍历每条边 每次合并边的起点和终点 如果1和n联通 并且这条边在1和n的这个连通块中 就对ans取min Code…

Windows中IDEA2024.1的安装和使用

如果你也喜欢,记得一键三连啊 一、卸载 二、安装 三、注册 1、打开Crack文件,直接双击 “安装.bat”,否则可能安装会出错!! 2、选择【Activation code】(不要关闭该界面继续后面的步骤)。 …

【C#】构造协议帧通过串口下发

构造一个“协议帧”&#xff0c;打包串口/网络通信帧头部结构的核心部分 &#x1f527; 代码&#xff1a; List<byte> frame new List<byte>();// 1. 固定帧头 frame.AddRange(BitConverter.GetBytes(0x0130)); // 帧头 (4B) frame.AddRange(BitConverter…

04_SQL概述及DDL

文章目录 一、关于SQL1.1、SQL概述1.2、SQL分类 二、数据库操作2.1、查看数据库2.2、切换数据库2.3、查询当前使用的数据库2.4、创建数据库2.5、查看数据库创建信息2.6、修改数据库2.7、删除数据库 三、表的操作3.1、数据类型3.1.1、数值类型3.1.2、字符串类型3.1.3、日期时间类…

HCIA-数据通信datacom认证

文章目录 一、数据通信简介1.1 标准协议1.2 数据传输过程 二、通用路由平台VRP2.1 VRP简介2.2 命令行基础 三 、网络层协议IP3.1 数据封装3.2 数据包传输2.3 IP地址2.4 子网划分2.5 ICMP 四、IP路由基础4.1 路由概述4.2 路由表4.3 路由转发4.4 静态路由4.5 动态路由4.6 路由高级…

fast_pow(),c语言幂函数

double fast_pow(double a, int n) { double res 1.0; while (n > 0) { if (n & 1) res * a; // 如果当前位是1&#xff0c;累乘 a * a; // 平方 n >> 1; // 右移一位&#xff08;相当于 n / 2&…

OpenBMC:BmcWeb 处理http请求2 查找路由对象

OpenBMC:BmcWeb 处理http请求1 生成Request和AsyncResp对象_bmc web-CSDN博客 当接收到http请求,并且完成解析后,调用了App::handle处理请求 而App::handle又调用了router.handle(req, asyncResp);来处理请求 1.Router::handle void handle(const std::shared_ptr<Requ…

[Mac]利用hexo-theme-fluid美化个人博客

接上文,使用Fluid美化个人博客 文章目录 一、安装hexo-theme-fluid安装依赖指定主题创建「关于页」效果展示 二、修改个性化配置1. 修改网站设置2.修改文章路径显示3.体验分类和标签4.左上角博客名称修改5.修改背景图片6.修改关于界面 欢迎大家参观 一、安装hexo-theme-fluid 参…

深入理解二叉树、B树与B+树:原理、应用与实现

文章目录 引言一、二叉树&#xff1a;基础而强大的结构基本概念特性分析Java实现应用场景 二、B树&#xff1a;适合外存的多路平衡树基本概念关键特性查询流程示例Java简化实现典型应用 三、B树&#xff1a;数据库索引的首选核心改进优势分析范围查询示例Java简化实现实际应用 …

8.4考研408简单选择排序与堆排序知识点深度解析

考研408「简单选择排序与堆排序」知识点全解析 一、简单选择排序 1.1 定义与核心思想 简单选择排序(Selection Sort)是一种选择排序算法,其核心思想是: 每趟选择:从待排序序列中选择最小(或最大)的元素,与当前位置的元素交换。逐步构建有序序列:经过 n − 1 n-1

为什么需要开源成分分析?库博同源分析工具介绍

在当今的软件开发世界中&#xff0c;开源组件已经成为不可或缺的一部分。无论是加速开发进程&#xff0c;还是降低开发成本&#xff0c;开源组件都为我们带来了巨大的便利。然而&#xff0c;随着开源组件的广泛使用&#xff0c;安全风险也随之而来。你是否曾担心过&#xff0c;…

ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>

首先在C/C配置中设置路径&#xff1a; 可以编辑文件.vscode/c_cpp_properties.json ${workspaceFolder}/**/opt/ros/humble/include/**编译配置 确保配置好了CMakeLists.txt文件。 colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDSON这样会在目录下生成compile_com…

常用的排序算法及对比

1. 选择排序&#xff08;Selection Sort&#xff09; 算法思想与理论推导 基本思想&#xff1a; 每次从待排序数组中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将它与当前序列的起始位置交换&#xff0c;逐步将整个数组排序。 推导过程&#xff1a; 设数组长…

Linux基础入门:从零开始掌握Linux命令行操作

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f388;有没有觉得电影里的黑客&#x1f412;酷毙了&#xff1f;他们只用键盘⌨就能搞定一切。今天&#xff0c;毛毛张要带你们体验这种快感&#x1f600;&…

OpenAI发布的《Addendum to GPT-4o System Card: Native image generation》文件的详尽笔记

Native_Image_Generation_System_Card 文件基本信息 文件名称&#xff1a;《Addendum to GPT-4o System Card: Native image generation》发布机构&#xff1a;OpenAI发布日期&#xff1a;2025年3月25日主要内容&#xff1a;介绍GPT-4o模型中新增的原生图像生成功能&#xff…

5.02 WPF的 Combox、ListBox,slider、ProgressBar使用

1. 关于Combox\ListBox使用&#xff1a; 1.1 内容绑定有两种方法&#xff0c; 优先使用方法1&#xff0c;因为列表变化的时候&#xff0c;Combox会自动显示新的内容。而方法2并不会实时更新。 方法1&#xff1a;使用DataContext this.comboBox1.DisplayMemberPath "na…