Excel VBA之函数篇-3.6自动录入时间不精确?搭配时间生成器更完美

Excel VBA之函数篇-3.6自动录入时间不精确?搭配时间生成器更完美

前景提要

昨天我们分享了时间/日期的函数,time和date,能够成功的帮助我们自动生成当前的时间和日期,在一些工作场景中,比方说后期数据整理,录入等方面都有不小的帮助,不过后来有一些朋友问我,他们很多时候并不是及时录入数据的,比方说很多店铺都是在下班或者是快要下班的时候,才回去整理数据的,而这个时候如果按照我们昨天的方式来录入的话,日期应该没问题,但是时间就可能有很大的问题了,登记表格的时候都是录入这个动作发生的时间,并非时间订单销售的时候,如果后期用这份数据来分析市场的话,可能会得出一个销售高峰在下班前半个钟这样的一个错误数据,那么这样的错误要如何避免呢?

最好的方法就是我们在录入数据的时候,手工录入销售的时间,不手工录入的话,就牵扯到另外一个问题,日期可能会出现格式不同的情况,时间更加麻烦,每次都要输入一个“:”,这样的话就无法实现高效录入的效果了,怎么办呢?别怕,我们今天继续完善下我们的代码,通过时间/日期生成器函数来实现自动搭配手工的方式来完善录入操作。

函数说明

今天我们重点介绍下两个函数,一个是日期生成器函数,DateSerial,你按照年月日这个顺序提供三个数据,它自动可以生成一个日期,这个函数还有一个很厉害的地方,它还可以自动计算正确的日期,比方说你输入2019,5,36,5月怎么都不可能有36天,那么这样输入会不错嘛?不会的,他会自动帮你调整到2019/6/5这样的日期,所以你也可以用来做日期之间的计算的。另外一个是时间生成器函数,TimeSerial,效果和上面的DateSerial是差不多的,你按照时分秒提供三个数据,他能够自动生成一个时间。好了,有了方法,我们来继续完善下我们之前的代码

上代码

我们今天还是利用我们昨天的表格,表格方面不做任何的变动,这样大家就能够相互比较前后两种方法的差异。

其实按照我们日常工作中的场景,数据录入一般都是集中在当天完成的,唯一可能不太准确的就是具体的时间,可能向我们前面说的,是集中某个时间段录入的,也有可能过了半个钟或者有空了才会去统计数据,录入数据的,所以自动生成时间可能并不太符合某些场景,今天我们为了一起分享下日期生成器函数的使用,所以默认时间、日期都需要手工录入这样子,方面我们学习这两个函数,实际工作中,大家可以根据自己的使用场景来选择自动、手动搭配来使用。

Sub test()Dim num&, ShopName$line:num = Application.InputBox("请输入商品的序号", "输入准确的序号", , , , , , 3)If num <> 0 Then ShopName = Choose(num, "苹果手机", "vivo", "华为", "OPPO X27", "摩托罗拉", "红米 小辣椒XR", "百度音响5-5") LastCol = Cells(Rows.Count, 6).End(xlUp).Row Cells(LastCol + 1, 6) = ShopName 'Cells(LastCol + 1, 9) = Date NewDate = Application.InputBox("请输入实际销售日期,用点隔开", "日期的输入", , , , , , 3) YEAR1 = Split(NewDate, ".")(0) MONTH1 = Split(NewDate, ".")(1) DAY1 = Split(NewDate, ".")(2) Cells(LastCol + 1, 9) = DateSerial(YEAR1, MONTH1, DAY1) NewDate = Application.InputBox("请输入实际销售时间,用点隔开", "日期的输入", , , , , , 3) 'Cells(LastCol + 1, 9).Offset(0, 1) = Time hour1 = Split(NewDate, ".")(0) min1 = Split(NewDate, ".")(1) senc1 = Split(NewDate, ".")(2) Cells(LastCol + 1, 9).Offset(0, 1) = TimeSerial(hour1, min1, senc1) GoTo lineEnd IfEnd Sub

效果如图:

程序依然是需要我们输入产品的序号,这是我们之前学习的快速录入的方法,这里我们选择5,然后继续执行,摩托罗拉已经被录入产品那一列了,之后会有一个弹窗,提示我们输入三个数字,代表年月日,并且用点隔开

这里我们随便输入2020.10.5,这里我们依然利用split()函数来拆分,得到年月日,并通过DateSerial生成一个最终的日期,2020/10/5

然后程序继续执行,这里还有一个输入框,提示我们输入时分秒,依然使用点隔开,我们输入19.20.20这样的三个数据,这里也是成功的生成了一个准确的时间

完美的达到了我们的要求。

代码解析

本次的代码依然没有太多的难点,基本上还是利用之前我们学过的inputbox输入框+split()拆分函数来实现交互的,之后我们就通过TimeSerial和DateSerial这两个函数得到我们想要得到的日期了,日常工作中,大家可以结合上次分享的代码内容一起搭配使用,一般日期都是可以自动录入的,因为基本上都是当天录入数据的嘛,而时间可能会有差异,这个时候就可以让时间实现手工录入,一样可以节省我们不少的工作时间。

总结

============================================

每一个程序的小脚本都是在不断的调试和测试中完善的,任何人在写代码的时候都没有办法考虑所有的场景和问题,只能通过后期不断的完善,这也是大家以后写代码的一个思路和方向,一次就写出符合所有使用场景得代码是不可能得,都需要经过后期不断得调试和更改得,在后期使用中,如果还有其他问题,大家也可以反馈出来,我们继续完善,争取让更多人得工作更加轻松。

============================================

(0)

相关推荐

  • VBA代码库12:处理日期和时间

    excelperfect 本文中的代码来自于www.cpearson.com,特辑录于此,方便在需要时参考. 下面的过程和函数代码用于处理日期和时间. 指定年的第一个星期一 下面的函数返回指定年的第一 ...

  • 第25天:Python datetime 和 time

    在前面的章节中已经介绍了一些 Python 常用的模块,本节再介绍两个模块 datetime 模块和 time 模块,这两个模块主要用于转换日期格式的功能. datetime模块 datetime 模 ...

  • VBA专题11:详解UsedRange属性

    excelperfect UsedRange属性是Worksheet对象的一个有用的属性,可以返回工作表中已使用的单元格区域.实际上,根据UsedRange的意思,我们就可以明白,该属性代表工作表中已 ...

  • Excel VBA之函数篇-3.7自动录入节奏太快,加上延时等待更人性化

    Excel VBA之函数篇-3.7自动录入节奏太快,加上延时等待更人性化 前景提要 昨天我们成功得实现了在数据录入的过程中,自动登记日期/时间和手工录入日期/时间得方法,在当初完成这个小脚本的时候,也 ...

  • Excel VBA之函数篇-3.22 轻松转换单元格格式

    前景提要 最近在工作的时候,经常碰到不少的同事跑过来让我帮忙看看单元格的格式之类的修饰问题,其实这也算是大家日常工作中比较常见的操作,因为不同的工作环节不同的要求,就算是相同的数据,大家对于展示上面的 ...

  • Excel VBA之函数篇-3.21简易数字提取法 用的好方便过正则

    前景提要 最近有一些童鞋后台留言反馈,自己在日常的工作中需要做一些数据的提取,手工操作的话,是比较的麻烦并且浪费时间,既然VBA如何强大,是不是有一些比较好的方法呢?小编写了下,还真有一个比较简单的函 ...

  • Excel VBA之函数篇-3.20 半角or 全角 数据处理并不难

    场景说明 可能看见标题的时候,很多的童鞋都是懵逼的状态的,什么全角半角?不太了解吗?看来如果这些童鞋的公司也有这样的要求的话,估计就要遭殃咯,我们来看下右下角的输入法, 普遍常用的就是搜狗输入法和QQ ...

  • Excel VBA之函数篇-3.19大数据时代必备查找技能 万条数据能奈我何

    前景提要 经常看电视或者是一些招聘信息的童鞋,应该就比较熟悉大数据这个概念,大数据简单的理解就是非常庞大的数据处理,数据量的提升,最直接的结果就是普通的数据处理方法越来越慢了,现在也是推出了很多种针对 ...

  • Excel VBA之函数篇-3.18跨越sheet统计数据 VBA强大的超乎想象

    前景提要 昨天我们分享了那个案例之后,相信很多的童鞋都会觉得那个函数有点多此一举,虽然可以形成透视表,但是面对数据不大的情况下,通过简单的复制粘贴在直接用透视表就可以了,并不需要写代码,这说法大家还没 ...

  • Excel VBA之函数篇-3.17多列数据统计不头疼,准时下班好轻松

    前景提要最近有同事让我帮忙看看有没有什么好方法来帮助他统计下假期期间各分店的销售总和,求和,不是有最简单的求和函数SUM吗?直接丢给他一句不是有求和公式嘛,但是他还是一脸无奈的让我过去帮忙,本着大家都 ...

  • Excel VBA之函数篇-3.16多样筛选组合任君选 筛选功能从此是路人

    前景提要 昨天我们分享了如何通过like()函数来实现数据的筛选,可能是因为昨天忙于赶车,比较着急,我看了下我好像并没有完全介绍完一些比较常用的功能,今天就继续来分享下like()函数在筛选方面的强大 ...

  • Excel VBA之函数篇-3.15数据筛选无烦恼 多样组合来助力

    Excel VBA之函数篇-3.15数据筛选无烦恼      多样组合来助力 前景提要 在日常的工作中,数据筛选是我们经常都需要面对的事情,excel在这方面提供的选择并不算是很多,最常见的筛选功能, ...