![8dfee3afd87adce4d9755f1e57a1342a.png](https://i-blog.csdnimg.cn/blog_migrate/7a9798ed948071535022042bbc5ef2da.jpeg)
这是汇集我目前知道的一些快速输入数据的技巧,是对一些需要重复输入的,重复使用的数据,进行简化输入。
******************************************************************************************
以下是本文的目录:
从常见的,稍微简单的开始讲,再到后面介绍一些稍微复杂的。
1# 输入法的快捷输入(微软/搜狗)
2# 函数 vlookup 搭配数据有效性(序列-下拉框)
3# 自定义单元格格式
4# F5 定位 快速求和计算
5# 快捷键-快速输入日期
6# 自定义序列
7# VBA 模仿 Vlookup 函数+ 工作簿变化事件
8# VBA 模仿 工作表双击前事件
******************************************************************************************
(1#A)针对第一种情况 : 参考以下截图,User Defined Phrases 也就是自定义短语的意思。点击(打开)开关按钮,然后选择添加或者修改已经存在的自定义短语。
![ce6790caab5a884e1c00a70b91f12f93.png](https://i-blog.csdnimg.cn/blog_migrate/26573fea8aad08b3f9a53d070348719f.jpeg)
如果要新增就点击Add,如果要载入词语的就点击Import,如果说要修改已存在的词语,就直接选中词语,便会弹出编辑Edit按钮。
![6cab65f7f4dcb77ce228f4f4ab583856.png](https://i-blog.csdnimg.cn/blog_migrate/99a3ead57b929840566635a6559bebb0.jpeg)
具体的每一步都可以参考,百度经验-微软输入法网址:
https://jingyan.baidu.com/article/91f5db1b0bf3b41c7f05e3e1.htmljingyan.baidu.com百度经验-搜狗输入法自定义短语网址:
https://jingyan.baidu.com/article/ea24bc39fac39cda62b331b4.htmljingyan.baidu.com (2#)针对第二种情况,用Vlookup函数进行快速的(固定的)输入。
具体可以参照,在本专栏里置顶的文章,【函数篇】-Vlookup常用功能。
![6ff9447d684a288d38ed2a93dcfc15a8.png](https://i-blog.csdnimg.cn/blog_migrate/c135104e499aaa50607a00681f1b008f.png)
内在逻辑在于:用数据有效性将第一个值返回到单元格上,以作为函数vlookup的参考值。而之后的快速输入则由Vlookup函数搭配IFERROR函数,如果出现错误值则返回空值。
(3#)针对第三种情况,自定义单元格格式。 对于一些,固定要嵌套输入的短语。我们可以尝试用单元格的自定义格式。值得注意的是,设置自定义格式,只是在显示的时候添加上其余的词语。但当实际上点击单元格内容,里面并没有什么变化。
说明:在Excel中创建自定义数字格式的方法。
1. 选择要设置格式的单元格或单元格区域。
2. 单击“格式”菜单中的“单元格”命令,然后单击“数字”选项卡。
3. 在“分类”列表中,单击“自定义”选项。
4. 在“类型”框中,编辑数字格式代码以创建所需的格式。
在Excel自定义数字格式使用如下的表达方式:
正数的格式 负数的格式 零的格式 文本的格式
#,##0.00 [Red]-#,##0.00 0.00 "TEXT"@
![308621f8e82bb6314ab74279184a09f7.png](https://i-blog.csdnimg.cn/blog_migrate/1da30dbb4301f1555dfeebf77d701dc4.png)
![1ec688dc1ce79691975caf9a8e23c28b.png](https://i-blog.csdnimg.cn/blog_migrate/e05c8b4c685c61ee875466382054363e.png)
![761d0c370165f97e25136418f290b7ef.png](https://i-blog.csdnimg.cn/blog_migrate/22e9d246710bf7582d1e155ed7459b09.png)
如果想要更多有意思的动画教程,可以参考以下两个网址:
一个是在本专栏之前已经写过的自定义格式;
还有一个是Word联盟上对自定义格式动态演示。
![8d43226ab0796addc732158f27c8f4bc.png](https://i-blog.csdnimg.cn/blog_migrate/e1d8181bb7ca1fd7aaa912fd880dd21e.png)
![686986a42f7f9077ebb1bf2bb5e8e35d.png](https://i-blog.csdnimg.cn/blog_migrate/4f917ee6279f12f2b53c0704731718cf.jpeg)
(4#)针对第四种情况,内在逻辑在于。首先是借用F5发位功能,找出所有空白值的位置,然后统一处理。
操作步骤如下:
1. 选中单元格区域,按快捷键F5,弹出定位窗口
2. 选中定位条件,找到空值
3. 将光标移动到第一个出现空值的单元格上并输入公式 =上面的单元格的位置
例如: =B1 。然后同时按着Ctrl+Enter即可。
![7ce85c837566cf4cd31aa4da904bee11.png](https://i-blog.csdnimg.cn/blog_migrate/b93d4d6d41ecd016b61b34b98576cfdd.jpeg)
(5#)针对第五种情况,快速输入日期。这里可以简单分为两种。一种是返回当前日期,月日年;另外一种则是返回当前的时间,上下午。
显示信息与快捷组合键之间的关系。
![d649220d3555b970590762e11ee5640a.png](https://i-blog.csdnimg.cn/blog_migrate/d3f6dc8b0b63d67a98bb3f8557358990.jpeg)
(6#)针对于第六种情况,对于一些固定的排序排列。我们可以预先设置好序列,然后按着“+”直接拖拉下拽,就能出现预定的值。
方法:第一次,完整得输入整个姓名序列,选中这些姓名,单击【文件】-【选项】-【高级】-【常规】-【确定】,即可完成定义的过程。以后每次只需要输入第一个人的姓名,然后按住填充柄往下拖动即可象填充数字一样将这组姓名输入到表格中。
![1f15170a520899a8fc62c50ffb45664c.png](https://i-blog.csdnimg.cn/blog_migrate/17a14425cf6a796090b02ab4aba29e9b.jpeg)
(7#)针对于第七种情况,模仿Vlookup函数,返回所需要的值。
内在逻辑在于,通过第一个主数据与参考表里做比对。如果配对成功,则会这条参考值里同一行的所有数据到指定的位置上。
PS:这是个比较经典而且实用性较高的案例。
这里只给出初步的框架,简单的代码展示。
Private Sub Worksheet_Change(ByVal Target As Range)
Zongjia
If Application.Intersect(Target,Range("C2:C100")) Is Nothing Or Target.Count > 1 Then
'判断更改的是否在C2到C200这个区域,或者更改的单元格是否大于一。
'否则,退出程序。
Exit Sub
End If
Dim i As Long
i = 2
Do While Cells(i, "O").Value <> ""
If Target.Value = Cells(i, "O").Value Then
Application.EnableEvents = False
Target.Value = Cells(i, "N").Offset(0, 1).Value
Target.Offset(0, 1) = Cells(i, "O").Offset(0, 1).Value
Target.Offset(0, 2) = Cells(i, "O").Offset(0, 2).Value
Target.Offset(0, 4) = Cells(i, "O").Offset(0, 3).Value
Target.Offset(0, 3).Select
Application.EnableEvents = True
Exit Sub
Else
If Target.Value = "" Then '如果主数据被删除,则该行的所有数据都删除
Target.Offset(0, 1).Resize(1, 5) = ""
End If
End If
i = i + 1
Loop
End Sub
—————————————————————————————————————————————————————————————————————————————————————————
Sub Zongjia()
Dim i As Long
i = 2
Do While Cells(i, "F") <> ""
Application.EnableEvents = False
Cells(i, "H").Value = Cells(i, "G") * Cells(i, "F")
i = i + 1
Application.EnableEvents = True
Loop
End Sub
大致演示的效果如下:
(背景在于:货物的录入登记,以及统计总金额)
![f6a4ecdd7d75e5c94ac2a9490d076f7d.png](https://i-blog.csdnimg.cn/blog_migrate/ff3d057287cc32f4ff62e4586c396c59.jpeg)
(8#)针对于第八种情况,我们或者也可以用以下VBA代码代替第五种情况。在双击鼠标前,输入当前日期。
这里关键的部分是做条件判断: 只能允许我们选中单一单元格才能执行代码,才能返回日期。换言之,选中的单元格个数超过1, 又或者选中的单元格返回的行数不能不等于1。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Count > 1 Or Target.Columns.Count <> 1 Then
Exit Sub
Else
Target.Value = Application.WorksheetFunction.Text(Application.WorksheetFunction.Round(Now(), 0), "yyyy-mm-dd")
End If
Cancel = False
End Sub
具体的显示效果如下:(从之前的快捷键到现在的鼠标双击)
![cdc8e87a6f609a9141d77790e9a4cc4d.png](https://i-blog.csdnimg.cn/blog_migrate/aab0e7c9887ed34ea3727739884fdbcf.jpeg)