Excel表格的快速动态扩展与删除行

实例需求:工作表中的表格(ListObject)名称为Table1,表格列数不确定,需要实现如下功能:

  • 当用户完成最后一行最后一列输入之后(如果该单元格为空,则视为输入未完成),表格自动扩展一行
  • 扩展行中,第一列填充自动序号,其他列填充NA
  • 如果用户双击表格中最后一行的任意单元格,那么删除该行,并相应调整表格单元格范围

效果如下所示。

请添加图片描述
示例代码如下。

Private Sub Worksheet_Change(ByVal Target As Range)Dim oTab As ListObject, oListRow As ListRowConst TAB_NAME As String = "Table1"If Target.CountLarge = 1 And Len(Target.Cells(1).Value) > 0 ThenSet oTab = Me.ListObjects(TAB_NAME)With oTabIf Not Application.Intersect(.Range.Columns(.ListColumns.Count), Target) Is Nothing ThenIf Target.Offset(1).ListObject Is Nothing ThenSet oListRow = .ListRows.AddApplication.EnableEvents = FalsemRow.Range.Value = "NA"oListRow.Range(1) = .ListRows.CountApplication.EnableEvents = TrueEnd IfEnd IfEnd WithEnd If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Dim oTab As ListObjectConst TAB_NAME As String = "Table1"If Target.ListObject.Name = TAB_NAME ThenSet oTab = Target.ListObjectIf Target.Offset(1).ListObject Is Nothing ThenApplication.EnableEvents = FalseoTab.ListRows(oTab.ListRows.Count).DeleteCancel = TrueApplication.EnableEvents = TrueEnd IfEnd If
End Sub

【代码解析】
第1~18行代码为工作表的Change事件,实现扩展表格新增行。
第3行代码定义表格名称。
第4行代码判断发生变化Range(参数Target)为单个单元格,并且单元格内容不为空。
第5行代码获取表格对象。此处并未检查是否存在指定名称的ListObject,因此有可能产出运行时错误。
第7行代码代码判断Target是否位于表格的最后一列,由于表格的总列数不确定,因此需要使用.Range.Columns(.ListColumns.Count)获取最后一列的对象,其中.ListColumns.Count为表格的列数。
第8行代码判断Target之下相邻单元格是否在表格中,如果满足条件,说明Target位于表格的最后一行。这个也不是严谨逻辑判断,如果两个表格上下相邻,那么就会出现误判,如果需要严谨判断,那么需要进一步对比表格名称。
第9行代码扩展表格,增加一行。
第10行代码禁止系统事件激活。
第11行代码将新增行中的单元格全部填充为NA。
第12行代码更新第一列单元格内容为自动序号。
第13第行代码恢复允许系统事件激活。

第19~31行代码为工作表的BeforeDoubleClick事件,实现删除最后行。其中与Change事件相同的代码不再赘述。
第22行代码判断Target位于指定名称的表格中。
第26行代码删除表格的最后一行,同时表格范围将自动缩减。
第27行代码取消双击操作。

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

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

相关文章

Python 生成 文件目录网页 下载超链接和打开 笔记

1. 一键生成 文件目录网页 下载超链接 1.1 图: 1.2 代码: (由Ai生成部分,再改成适合自己用) index.py # -*- coding: utf-8 -*- import os # import syspath E:\BIT\public\software\\ # path path os.getcwd() …

Java基础知识整理,驼峰规则、流程控制、自增自减

写在开头 本文接着上一篇文章续写哈。Java基础知识整理,注释、关键字、运算符 在这一篇文章中我们总结了包括注释、关键字、运算符的Java基础知识点,今天继续来聊一聊命名规则(驼峰)、流程控制、自增自减。 一、命名规则 上一…

书生·浦语 LMDeploy 大模型量化部署原理

文章目录 大模型部署背景模型部署大模型的特点大模型部署的挑战大模型部署方案 LMDeploy简介 大模型部署背景 模型部署 将训练好的模型在特定软硬件环境中启动的过程,使模型能够接收输入并返回预测结果为了满足性能和效率的需求,常常需要对模型进行优化…

SpringBoot项目打包

1.在pom.xml中加入如下配置 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><descriptorRef…

CentOS stream 9配置网卡

CentOS stream9的网卡和centos 7的配置路径&#xff1a;/etc/sysconfig/network-scripts/ifcfg-ens32不一样。 CentOS stream 9的网卡路径&#xff1a; /etc/NetworkManager/system-connections/ens32.nmconnection 方法一&#xff1a; [connection] idens32 uuid426b60a4-4…

CTF CRYPTO 密码学-2

题目名称&#xff1a;crypto1 题目描述&#xff1a; 字符 ZZZZ X XXZ ZZ ZXZ Z ZXZ ZX ZZX XXX XZXX XXZ ZX ZXZZ ZZXZ XX ZX ZZ 分析 此字段是由Z和X组成的字符&#xff0c;联想到莫斯密码是由.和-组成的所以接下来可以尝试莫斯密码解题 解题过程&#xff1a; Step1&#xf…

双亲委派模型

其实分两步&#xff1a;检查&#xff08;自底而上&#xff09;—>加载&#xff08;自顶向下&#xff09; 看个例子&#xff1a;Class.forName(“com.mysql.cj.jdbc.Driver”); 但是&#xff01;&#xff01;&#xff01;在JDBC4.0之后就不需要这行代码了&#xff0c;使…

【解决问题】java项目启动缓慢原因排查

背景&#xff1a; 最近启动项目&#xff0c;特别慢&#xff0c;尤其在中间部分会卡住几分钟&#xff0c;并且不打印任何日志 问题排查&#xff1a; 针对上面的问题&#xff0c;需要使用jdk自带的打印堆栈信息命令排查&#xff0c;这里我们采用命令跟idea工具两种方式 方式1-…

Flink Kubernetes Operator 介绍

一、简介 Flink Kubernetes Operator是针对在Kubernetes上运行Apache Flink应用程序而设计的工具。它充分利用了Kubernetes的优势&#xff0c;实现了对Flink集群的弹性管理和自动化操作&#xff0c;通过扩展Kubernetes API的方式&#xff0c;提供了管理和操作Flink部署的功能。…

田园好比一幅美丽的画

一望无垠的麦田&#xff0c;清新的空气&#xff0c;茂密的小树林&#xff0c;这一切都呈现在田园里。 清晨&#xff0c;东方刚刚泛起了鱼肚白&#xff0c;一切都雾蒙蒙的&#xff0c;仿佛给大地披上了一层薄薄的轻纱&#xff0c;大地在沉睡当中&#xff0c;小花沉静在美梦中&am…

复杂字幕特效SDK,重塑视频字幕新体验

字幕特效已经成为了提升视频品质、增强观众体验的重要手段。美摄科技作为行业领先的技术提供商&#xff0c;近期推出的复杂字幕特效SDK&#xff0c;更是引领了这一领域的创新潮流。 美摄科技复杂字幕特效SDK&#xff0c;不仅具备了电影级别的字幕功能&#xff0c;更实现了众多…

4D毫米波雷达——RADIal数据集、格式、可视化 CVPR2022

前言 本文介绍RADIal数据集&#xff0c;来着CVPR2022的。 它是一个收集了 2 小时车辆行驶数据的数据集&#xff0c;采集场景包括&#xff1a;城市街道、高速公路和乡村道路。采集设备包括&#xff1a;摄像头、激光雷达和高清雷达等&#xff0c;并且还包括了车辆的 GPS 位置和…