Technorati Tags: Excel,Marco,Auto Fill,Shortcut Key,Excel宏,自动填充,快捷键

Microsoft Excel 提供了丰富的快捷键,使得操作电子表格十分方便,尤其是在操作很大,很长的表时。

Excel的自动填充功能,使得复制单元格内容、公式和填充序列的操作变得简单。但是,Excel只提供了通过拖动填充柄来实现填充,并没有为自动填充提供快捷键。在操作十分频繁的时候,右手必须在键盘和鼠标之间来回移动,容易疲劳。系统不提供,作为程序员,可以自己编写一个VBA宏执行自动填充,并为该宏指定快捷键,从而实现通过快捷键执行自动填充操作。

1: 新建一个Excel工作簿;在VBA编辑器中添加一个模块,编写宏代码。

源码:

' Author: Ken Yang
' http://www.cnblogs.com/kenyang
' 使用和分发,请保留完整作者信息。Sub AutoFill()Dim SourceArea As Range, TargetArea As RangeSet SourceArea = Selection.Areas.Item(1)Dim SourceBottomLeftCell As Range, SourceBottomRightCell As RangeSet SourceBottomLeftCell = SourceArea.Cells(SourceArea.Rows.Count, 1)Set SourceBottomRightCell = SourceArea.Cells(SourceArea.Rows.Count, SourceArea.Columns.Count)Dim TargetLastRow As Long, TargetLastCell As RangeIf SourceBottomLeftCell.Offset(1, 0).Value = vbEmpty ThenIf SourceBottomLeftCell.End(xlDown).Value = vbEmpty ThenIf SourceBottomLeftCell.Column = 1 ThenIf SourceBottomRightCell.Offset(1, 1).Value <> vbEmpty ThenSet TargetLastCell = SourceBottomRightCell.Offset(0, 1).End(xlDown).Offset(0, -1)End IfElseIf SourceBottomLeftCell.Offset(1, -1).Value <> vbEmpty ThenSet TargetLastCell = SourceBottomLeftCell.Offset(0, -1).End(xlDown).Offset(0, SourceArea.Columns.Count)End IfEnd IfElseSet TargetLastCell = ActiveSheet.Cells(SourceBottomLeftCell.End(xlDown).Offset(-1, 0).Row, SourceBottomRightCell.Column)End IfElse 'If SourceBottomLeftCell.Offset(1, 0).Value <> vbEmpty ThenDim LastCell As RangeSet LastCell = SourceBottomLeftCell.End(xlDown)Dim i As Long, LastRow As LongLastRow = SourceBottomLeftCell.End(xlDown).RowFor i = 2 To SourceArea.Columns.CountIf SourceArea.Cells(SourceArea.Rows.Count, i).Offset(1, 0).Value = vbEmpty ThenLastRow = SourceBottomLeftCell.RowExit ForElseDim CurrentLastCell As RangeSet CurrentLastCell = SourceArea.Cells(SourceArea.Rows.Count, i).End(xlDown)If CurrentLastCell.Row < LastCell.Row ThenLastRow = CurrentLastCell.RowEnd IfEnd IfNext iSet TargetLastCell = ActiveSheet.Cells(LastRow, SourceBottomRightCell.Column)End IfIf Not TargetLastCell Is Nothing ThenDim TargetAreaName As StringTargetAreaName = SourceArea.Cells(1, 1).Address(0, 0) & ":" & TargetLastCell.Address(0, 0)Set TargetArea = Range(TargetAreaName)On Error GoTo ErrHandlerSourceArea.AutoFill Destination:=TargetAreaTargetArea.SelectEnd IfErrHandler:End Sub

2: 为宏指定快捷键 Ctrl + E。 使用Ctrl + E 作为快捷键的原因是 Ctrl + E 没有被Excel内置功能占用,并且Ctrl 键和 E 键都在键盘的左边区域,左手单手就可以操作。

3: 将工作簿另存为 Excel 加载宏。

4: 将Excel加载宏 复制到 %programfiles%\Microsoft Office\Office12\XLSTART 目录(Excel 2003 目录:%programfiles%\Microsoft Office\Office11\XLSTART),以便Excel启动时,自动加载宏代码。

也可从这里下载宏文件,解压后直接放置到%programfiles%\Microsoft Office\Office12\XLSTART 目录,即可使用。下载的宏文件只支持Excel 2007。如果是Excel 2003, 请按照前面的步骤操作。

这样,可以在Excel 中按下 Ctrl + E 实现向下自动填充了。

缺陷:

VBA宏代码执行的操作,不支持撤销(undo)。

报告bug,请留评论。

转载于:https://www.cnblogs.com/kenyang/archive/2012/05/16/2503846.html

自定义 Excel 自动填充快捷键相关推荐

  1. Java使用自定义Excel模板填充数据

    Java使用自定义Excel模板填充数据 上期我们说到使用POI简单的制作一个Excel,这里我们教林外一种方法,就是把Excel写好定为模板,直接填充数据. 老样子还是要添加POM依赖 <de ...

  2. macbookwps excel颜色填充快捷键_零基础、初学者必须掌握的10个Excel技巧,办公必备...

    在Excel的使用中,应用最为广泛的并不是Excel函数公式,也不是VBA或透视表等高大上的功能,而是一些最为接地气的实用技巧,这些技巧的特点是易学.易操作.但功能强大. 一.Excel技巧:Ctrl ...

  3. excel填充序列_数据太多输不完?Excel自动填充帮你搞定

    大家好,这里是有讲课堂.非常荣幸和你相遇. 最近有朋友和我说,有些功能用多了就没法察觉出它的意义了,就比如Excel的[自动填充] 仔细想想,自动填充在平时的运用其实真的很重要,很实用. 是的,自动填 ...

  4. excel自动填充脚本(awk)

    项目中需要整理一些资料,把word文档中的一些关键字段提取到excel,制成一个表单.额,本来想手动改的,无奈数据太庞大,就萌生了写个脚本来处理的想法.闲话不多说,具体看情景,下面是经过简单处理的ex ...

  5. 三位数自动递增编号函数_EXCEL中序号自动增加(如何避免隐藏行)?excel自动填充序号...

    excel表格中如何自动顺序填充序号 首先打开Excel 2007,创建如图所内容.当家也可以根据自己的实际情选择练习的内容.在此为了上的需要,特制作两列,第一列就"序号",第二列 ...

  6. EXCEL自动填充列索引号EXCEL的列求和、行求和EXCEL第一行锁定WORD行间距规整EXCEL快速筛选WORD画流程图

    (1)自动填充列索引号 有时电子表格的第一列有个INDEX标识更好阅读,此时只要添加一列,往里面补上序号即可.有个简单的补号的操作是:点击第一个方格,把鼠标放在它的右下角,出现一个黑十字(不带箭头), ...

  7. VBA实现 Excel自动填充

    遇到这种情况时,使用! 数百次的向下自动填充,手动敲? 简单的VBA代码搞定: Sub 自动填充() Dim i As Integer For i = 2 To 743If Range("b ...

  8. python pandas 实现Excel自动填充功能

    有如下表格,目标是快速的向C列填充上自己需要的值.pandas本身提供了fillna的方法,但是不是特别灵活,例如两个空格需要填充上不同的值,fillna方法就不一定能用的上了 现提供一种新的方法,用 ...

  9. 自定义Excel中的快捷键(Alt +1)

    前言, 有的时候我们要使用Excel中的某个功能, 经常要走好多层目录,才能进入,并使用这个功能. 当我们要经常使用这个功能时, 每次都要这么使用就变得非常不方便了, 这个使用,我们可以把这个功能,自 ...

  10. Excel - 自动填充

    文章目录 1)日期填充 a) 填充每一天 b) 仅填充工作日 2)填充序列 a) 方式1:那么可以通过序列的方式实现 b) 方式2:选择拖动 3)填充前一个单元格的后几位 a) 错误演示: b) 正确 ...

最新文章

  1. control-free CNV小记
  2. android源码编译烧鸡,android4.0源码下载 编译 系统体验~图解
  3. python 递归 写平方_Python算法:推导、递归和规约
  4. 论优秀的码农,学会这5点!
  5. CPU各寄存器的作用
  6. gho镜像安装器linux,Ghost镜像安装器
  7. 照片上的人出来了!云从3D人体重建登顶三项榜单,一张照片就能生成3D形象
  8. mysql集群异地部署_linux 环境下 部署mysql 集群
  9. php中foreach()的用法
  10. python 连接 mysql 被拒绝
  11. css中visibility与display的区别
  12. 图书管理系统的E-R图和数据库模型图
  13. 计算机服务添加打印机服务,无法添加打印机报错后台程序服务没有运行的解决方法...
  14. 如何给linux预装一些工具,linux 下的一些基本工具的使用方法
  15. Unity引擎与Cocos引擎的区别
  16. 更方便!微信小程序任务栏功能升级:增加「我的小程序」
  17. Iris Network Traffic Analyzer简易教程
  18. 介绍3种ssh远程连接的方式
  19. 学习post抓包最好用的抓包工具
  20. css 设置文字强制不换行

热门文章

  1. 解决python处理word文档时的两个问题,截取内容和页眉横线
  2. R 编程语言 - 简介
  3. cad计算机绘图知识点,CAD制图入门初学知识点汇总
  4. PHILIPS>飞利浦>HX9352>电动牙刷>拆解+维修记录
  5. String的getBytes()方法
  6. 联想笔记本小新V2000怎么进BIOS设置
  7. soul群聊派对显示服务器异常,soul群聊派对在哪?功能、查找步骤有这些
  8. 如何判断电路反馈类型
  9. Goole 和 Bing 和 Baidu 搜索语法
  10. 计算机中使用资源叫什么,在计算机术语中,什么叫资源子网和通信子网?