VBA快速填充缺失数据

实例需求:数据表中F列中存在数据缺失,如下图所示。现需要根据A列中的内容(类别,图中C1、C2、B1为不同类别),补充F列数据,已知每个类别中F列存在不少于一个非空单元格,并且其内容相同。

在这里插入图片描述

示例代码如下。

Sub Demo()Dim rngF As Range, arrData, i As LongDim RowCnt As LongarrData = [a1].CurrentRegion.ValueRowCnt = UBound(arrData)For i = 2 To RowCntIf arrData(i, 1) <> arrData(i - 1, 1) ThenIf Len(arrData(i, 6)) = 0 ThenCells(i, 6) = Cells(i, 6).End(xlDown)End IfEnd IfNextWith Range("F2").Resize(RowCnt - 1, 1).NumberFormatLocal = "G/通用格式".SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C".Formula = .ValueEnd With
End Sub

【代码解析】
第4行代码将数据表加载到数组中。
第5行代码获取数据表的行数。
第6~12行代码从第二行开始循环遍历数据,确保每个类别的首行记录F列不为空,这样才能确保后续公式填充的结果是正确的。
如果当前行A列单元格不等于上一行A列单元格,则为一个新类别的首行数据记录,第8行代码判断其F列是否为空,如果为空,第9行代码使用当前行之下的第一个非空单元格填充当前行单元格。
第14行代码设置单元格区域数字格式为通用。
第15行代码使用SpecialCells(xlCellTypeBlanks)筛选数据表中F列的空白单元格,并设置公式为等于其上的相邻单元格。
第16行代码将F列中的公式转换为静态数值。


使用数组+字典的方式也可以实现本需求,本文只是展示另外一个实现思路。

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

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

相关文章

MPC814 DIP4封装交流输入光电晶体管耦合器

晶体管光电耦合器是一种将光信号转换为电信号的器件&#xff0c;其工作原理是通过光电二极管将光信号转换为电流信号&#xff0c;然后经过晶体管放大&#xff0c;输出相应的电压信号&#xff1b;具有高转换效率较高的灵敏度和快速响应等特点。 由工采网代理的MPC814系列结合了两…

Linux 非阻塞网络IO模式

非阻塞网络IO模式介绍 当用户线程发起一个 read 操作后&#xff0c;并不需要等待&#xff0c;而是马上就得到了一个结果。如果结果是一个 error 时&#xff0c;它就知道数据还没有准备好&#xff0c;于是它可以再次发送 read 操作。一旦内核中的数据准备好了&#xff0c;并且又…

Android笔记(十八):面向Compose组件结合Retrofit2和Rxjava3实现网络访问

一、Retrofit2 Square公司推出的Retrofit2库&#xff08;https://square.github.io/retrofit/&#xff09;&#xff0c;改变了网络访问的方式。它实现了网络请求的封装。Retrofit库采用回调处理方式&#xff0c;使得通过接口提交请求和相应的参数的配置&#xff0c;就可以获得…

安装2023最新版Java SE 21.0.1来开发Java应用程序

安装2023最新版Java SE 21.0.1来开发Java应用程序 Install the latest version of Java SE 21.01 to Develop Java Applications By JacksonML 本文简要介绍如何下载和安装2023年最新版Java Development Kit (简称JDK&#xff0c;即Java开发工具包标准版&#xff09;21.0.1&…

开发人员必须掌握的几个高级命令

xargs命令 在平时的使用中,我认为 xargs 这个命令还是较为重要和方便的。我们可以通过使用这个命令,将命令输出的结果作为参数传递给另一个命令。 比如说我们想找出某个路径下以 .conf 结尾的文件,并将这些文件进行分类,那么普通的做法就是先将以 .conf 结尾的文件先找出…

通过51单片机控制SG90舵机按角度正反转转动

一、前言 本文介绍如何通过51单片机控制SG90舵机实现角度的正反转转动。SG90舵机是一种常用的微型舵机&#xff0c;具有体积小、重量轻、结构简单等特点&#xff0c;被广泛应用于机器人、遥控模型和各种自动控制系统中。 使用51单片机&#xff08;STC89C52&#xff09;作为控…

RPM包管理_YUM

8.1 RPM包管理 8.1.1 RPM概述 RPM Package Manager (原Red Hat Package Manager&#xff0c;现在是一个递归缩写&#xff09; ​ 由Red Hat公司提出&#xff0c;被众多 Linux 发行版所采用也称二进制( binary code) 无需编译,可以直接使用 ​ 无法设定个人设置&#xff0c;开…

在 Windows PC 上轻松下载并安装 FFmpeg

FFmpeg 是一种开源媒体工具&#xff0c;可用于将任何视频格式转换为您需要的格式。该工具只是命令行&#xff0c;因此它没有图形、可点击的界面。如果您习惯使用常规图形 Windows 程序&#xff0c;安装 FFmpeg 一开始可能看起来很复杂&#xff0c;但不用担心&#xff0c;它;很简…

【探索评估】记录小车运动轨迹,并在 rviz 上显示

本文主要是参考的博客&#xff1a;ROS 移动机器人运动轨迹记录&#xff0c;并发布在rviz上 但是由于订阅的话题不一样&#xff0c;在这里记录一下 在进行自主探索的时候将小车移动过程中的消息记录在 txt 或是 csv 文件中 在此记录的是小车的 /odom 消息&#xff0c;并且只记录…

2023-12-14 二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数

二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数 104. 二叉树的最大深度 思想&#xff1a;可以使用迭代法或者递归&#xff01;使用递归更好&#xff0c;帮助理解递归思路&#xff01;明确递归三部曲–①确定参数以及返回参数 ②递归结束条件 ③单层逻辑是怎么样…

Leetcode—172.阶乘后的零【中等】

2023每日刷题&#xff08;六十&#xff09; Leetcode—172.阶乘后的零 算法思想 实现代码 int trailingZeroes(int n) {int ans 0;for(int i 5; i < n; i 5) {for(int j i; j % 5 0; j / 5) {ans;}}return ans; }运行结果 之后我会持续更新&#xff0c;如果喜欢我的文…

郝斌C语言自学教程笔记

赫斌C语言——笔记目录 c语言编程预备知识流程控制函数变量指针结构体位运算符 前段时间康哥看我C语言基础不牢,推荐我学习郝斌老师的C语言课程&#xff0c;花2周看完之后发现确实是目前所看的C语言课程中最好的&#xff0c;不仅非常适合入门&#xff0c;而且对即使学了几年C语…