前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Excel技巧:使用上方单元格的值填充空单元格

Excel技巧:使用上方单元格的值填充空单元格

作者头像
fanjy
发布于 2022-04-13 06:21:37
发布于 2022-04-13 06:21:37
3.5K00
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

有时候,工作表列中有许多空单元格,而不是在每行都重复相同的内容,这样可以使报表更容易阅读,然而也会导致一些问题,例如不方便排序或筛选数据。

如下图1所示,在列A中有一些空单元格,如果对列A进行筛选,则只会出现有内容的单元格数据,因此空白单元格需要使用其上方单元格的内容填充。

图1

首先,选择包含空单元格的列,单击功能区“开始”选项卡“编辑”组中的“查找和选择——定位条件”,在弹出的“定位条件”对话框中勾选“空值”前的单选按钮。

然后,输入=号,按向上箭头键选择上方单元格,再按Ctrl+回车键,在所有被选择的单元格中输入公式。

最后,选择列A,复制数据,然后在所选列中单击右键,选择“粘贴值”命令。

完整的操作过程如下图2所示。

图2

如果你经常遇到填充空单元格的操作,那么可以使用宏来代替手工操作。

宏代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub FillinBlankCells()
   Dim wks As Worksheet
   Dim rng As Range
   Dim lngLastRow As Long
   Dim lngCol As Long
   Set wks = ActiveSheet
   With wks
        lngCol = ActiveCell.Column
        lngLastRow =.Cells.SpecialCells(xlCellTypeLastCell).Row
        Set rng = Nothing
        Set rng = .Range(.Cells(2, lngCol),.Cells(lngLastRow, lngCol)).Cells.SpecialCells(xlCellTypeBlanks)
        On Error GoTo 0
        If rng Is Nothing Then
            MsgBox "没有找到空单元格"
            Exit Sub
        Else
            rng.FormulaR1C1 ="=R[-1]C"
        End If
        With .Cells(1, lngCol).EntireColumn
            .Value = .Value
        End With
   End With
End Sub

在运行这个宏之前,使当前单元格位于要填充空白单元格的列中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Excel揭秘24:使用SpecialCells方法带来的后果
在编写VBA代码处理工作表单元格时,经常会使用到SpecialCells方法来获取特定单元格,然而,使用该方法会引起一些“副作用”,我们还是了解清楚比较好些。
fanjy
2021/07/12
1.3K0
Excel揭秘24:使用SpecialCells方法带来的后果
Excel实战技巧74: 在工作表中创建搜索框来查找数据
如下图1所示,在数据区域上方放置有一个文本框,用来输入要搜索的文本,其名称重命名为“MySearch”;一个用作按钮的矩形形状,点击它开始搜索并显示结果;两个选项按钮窗体控件,用来选择在数据区域的哪列进行搜索。
fanjy
2020/02/18
17K1
VBA实战技巧01: 在代码中引用动态调整单元格区域的5种方法
在VBA代码中,经常要引用单元格数据区域并对其进行操作。然而,如果对数据区域采用“硬编码”地址,那么当该区域大小变化时,必须修改相应的引用该区域的代码。本文整理了可以动态引用数据区域的5种方法,供编写代码时参考。
fanjy
2020/02/12
4.8K0
一起学Excel专业开发25:使用类模块创建对象4
Private WithEvents mwksWorksheet AsExcel.Worksheet
fanjy
2019/11/13
7530
一起学Excel专业开发25:使用类模块创建对象4
VBA自动筛选完全指南(下)
这可能看起来很奇怪,但无论想要多少个前面的条目,运算符值始终为xlTop10Items。
fanjy
2022/11/16
3.9K0
VBA自动筛选完全指南(下)
Excel实战技巧54: 创建导航工作表
当工作簿中的工作表不多时,我们只需要单击底部的工作表名到达想要操作的工作表。然而,当有很多工作表时,要找到想要的工作表就需要边单击滚动按钮边查找工作表,这可能要花点时间了。
fanjy
2019/09/24
1.1K0
Excel实战技巧54: 创建导航工作表
VBA技术:你需要知道的一些VBA操作形状的代码
在Excel中,可以通过功能区“插入”选项卡“插图”组中的“形状”库按钮在工作表中插入形状。可以使用形状来可视化数据、在形状中添加文本、作为执行宏代码的按钮,等等。
fanjy
2023/02/24
4.9K0
VBA技术:你需要知道的一些VBA操作形状的代码
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.1K0
Excel VBA 自动填充空白并合并相同值的解决方案
在Excel中经常会遇到这样的数据处理需求:一列数据中存在多个空白单元格,需要用其上方最近的非空值填充,然后将相同的连续值合并成一个单元格。比如:
洛秋_
2024/12/31
1950
Excel小技巧91:合并单元格且不丢失数据
有时候,我们需要合并多个单元格,然而,当选择要合并的单元格,并使用“合并单元格”命令后,Excel会给出如下图1所示的提示,只保留左上角单元格中的数据。
fanjy
2021/08/31
5.5K0
Excel小技巧91:合并单元格且不丢失数据
小游戏2048
用Excel VBA来实现的手机上玩的那种组合数字的小游戏。 Public Row As Integer, Col As Integer '偏移 Di
xyj
2020/07/28
7810
小游戏2048
常用功能加载宏——筛选状态的单元格数值粘贴
如果能有一个在筛选状态下也可以使用的数值粘贴功能就方便多了,让我们用VBA来实现它,效果:
xyj
2020/07/28
1.1K0
常用功能加载宏——筛选状态的单元格数值粘贴
VBA小技巧14:拆分带有换行的单元格中的文本
在Excel中,我们可以使用“分列”功能(即“文本到列”),很容易地将单元格中带有特定分隔符的文本拆分到不同的列中。但是,对于使用<Alt+Enter>组合键换行的文本,不能够使用这个功能。例如,下图1所示的单元格中的数据,想要将其拆分到不同的列中,“分列”功能对其无效。
fanjy
2021/09/22
4.6K0
常用功能加载宏——定位空白单元格并设置等于上一个
在处理Excel表格的时候,偶尔会碰上这种需要,定位选中单元格区域内的空白单元格,然后让空白的单元格等于它上面的单元格,一般在Excel是这样操作的:
xyj
2020/07/28
2.5K0
常用功能加载宏——定位空白单元格并设置等于上一个
ExcelVBA批量合并或取消单元格
【问题】烦人的合并单元格,我们在进行vlookup、sum等计算中最怕就是遇到神人交过来的表格,
哆哆Excel
2022/10/25
2.2K0
ExcelVBA批量合并或取消单元格
这种合并单元格,PQ真的处理不了!又没学过VBA,怎么办!
导语:Power Query是无法识别合并单元格的,在一般情况下,也可以直接通过向下填充的方式补充好数据的,但是,有些特殊的情况,Power Query是真的无能为力!
大海Power
2024/03/25
3630
这种合并单元格,PQ真的处理不了!又没学过VBA,怎么办!
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。
fanjy
2020/11/09
1.5K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
Excel实战技巧:基于单元格的值显示相应的图片
选择零件号,显示相应的零件图;选择员工姓名,显示该员工相片,等等,都是选择单元格中的值而显示相应的图片的例子,也就是说基于单元格的值查找并显示对应的图片,单元格的值改变,图片也自动改变。效果如下图1所示。
fanjy
2023/02/24
9.7K0
Excel实战技巧:基于单元格的值显示相应的图片
VBA专题11:详解UsedRange属性
UsedRange属性是Worksheet对象的一个有用的属性,可以返回工作表中已使用的单元格区域。实际上,根据UsedRange的意思,我们就可以明白,该属性代表工作表中已使用的区域,不仅包括可以看到内容的单元格,而且不包括应用了格式、添加批注或其他一些修改的单元格。我们可以使用UsedRange属性来操控Excel工作表数据。
fanjy
2021/06/01
8.3K0
VBA专题11:详解UsedRange属性
Excel宏教程 (宏的介绍与基本使用)
大家好,又见面了,我是你们的朋友全栈君。 Excel宏教程 (宏的介绍与基本使用) Microsoft excel是一款功能非常强大的电子表格软件。它可以轻松地完成数据的各类数学运算,并用各种二维或三维图形形象地表示出来,从而大大简化了数据的处理工作。但若仅利用excel的常用功能来处理较复杂的数据,可能仍需进行大量的人工操作。但excel的强大远远超过人们的想象–宏的引入使其具有了无限的扩展性,因而可以很好地解决复杂数据的处理问题。 随着支持Windows的应用程序的不断增多和功能的不断增强,越来
全栈程序员站长
2022/08/23
6.6K0
推荐阅读
相关推荐
Excel揭秘24:使用SpecialCells方法带来的后果
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档