-
VBA入门到进阶常用知识代码总结43
2020-02-17 21:50:23189、 返回当前日期、时间(指本机系统设置的日期和时间) Sub t1() Debug.Print Date '返回当前日期 Debug.Print Time '返回当前时间 Debug.Print Now '返回当前日期+时间 End Sub 190、 格式化显示日期Format函数 ...第43集 日期与时间专辑
189、 返回当前日期、时间(指本机系统设置的日期和时间)
Sub t1()
Debug.Print Date '返回当前日期
Debug.Print Time '返回当前时间
Debug.Print Now '返回当前日期+时间
End Sub
190、 格式化显示日期Format函数
Sub t2()
Debug.Print Format(Now, “yyyy-mm-dd”) '2018-06-28
Debug.Print Format(Now, “yyyy年mm月dd日”) '2018年06月28日
Debug.Print Format(Now, “yyyy年mm月dd日 h:mm:ss”) '2018年06月28日 10:37:44
Debug.Print Format(Now, “d-mmm-yy”) '英文月份 28-Jun-18
Debug.Print Format(Now, “d-mmmm-yy”) '英文月份 28-June-18
Debug.Print Format(Now, “aaaa”) '中文星期 星期四
Debug.Print Format(Now, “ddd”) '英文星期前三个字母 Thu
Debug.Print Format(Now, “dddd”) '英文星期完整显示 Thursday
End Sub
191、 根据年月日返回日期DateSerial
Sub t3()
Debug.Print VBA.DateSerial(2011, 10, 1) '2011/10/1
End Sub
192、 根据小时分钟返回时间TimeSerial
Sub t4()
Debug.Print VBA.TimeSerial(1, 2, 1) '1:02:01
End Sub
193、 返回年月日小时分秒
Sub t5()
Dim d
d = “2011-10-28 01:10:03”
Debug.Print Year(d) & “年”
Debug.Print Month(d) & “月”
Debug.Print Day(d) & “日”
Debug.Print Hour(d) & “时”
Debug.Print VBA.Minute(d) & “分”
Debug.Print Second(d) & “秒”
End Sub
194、 计算两个日期相隔天数,月数,年数,小时,分种,秒DateDiff
Sub tt1()
Dim d1, d2 As Date
d1 = #11/21/2011#
d2 = #12/1/2011#
Debug.Print “相隔” & (d2 - d1) & “天”
Debug.Print “相隔” & DateDiff(“d”, d1, d2) & “天”
Debug.Print “相隔” & DateDiff(“m”, d1, d2) & “月”
Debug.Print “相隔” & DateDiff(“yyyy”, d1, d2) & “年”
Debug.Print “相隔” & DateDiff(“q”, d1, d2) & “季”
Debug.Print “相隔” & DateDiff(“w”, d1, d2) & “周”
Debug.Print “相隔” & DateDiff(“h”, d1, d2) & “小时”
Debug.Print “相隔” & DateDiff(“n”, d1, d2) & “分种”
Debug.Print “相隔” & DateDiff(“s”, d1, d2) & “秒”
End Sub
195、 计算两时间的差(常用)
Sub tt2() '计算两时间的差
Dim t, x
t = Timer
For x = 1 To 10000000
Next x
Debug.Print Timer - t
End Sub
196、 日期时间加减DateAdd
Sub tt3()
Dim d1, d2 As Date
d1 = “2001-10-1 00:00:00”
Debug.Print VBA.DateAdd(“d”, 10, d1) '加上10天
Debug.Print VBA.DateAdd(“m”, 10, d1) '加上10个月
Debug.Print VBA.DateAdd(“yyyy”, 10, d1) '加上10年
Debug.Print VBA.DateAdd(“yyyy”, -10, d1) '减少10年
Debug.Print VBA.DateAdd(“h”, 10, d1) '加上10小时后的时间
Debug.Print VBA.DateAdd(“n”, 10, d1) '加上10分种后的时间
Debug.Print VBA.DateAdd(“s”, 10, d1) '加上10秒后的时间
End Sub
197、 OnTime方法
安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。使用 Now + TimeValue(time) 可安排经过一段时间(从现在开始计时)之后运行某个过程。使用 TimeValue(time) 可安排某个过程只运行指定的时间。
Dim k
Sub ttt1()
Application.OnTime TimeValue(“15:46:00”), “a” '指定时间运行a过程
End SubSub ttt2()
Application.OnTime Now + TimeValue(“00:00:02”), “a” '现在开始2秒后运行a过程
End SubSub a()
MsgBox “test”
End Sub
'--------------------------------------------------------------------------------------------------
Sub 时间显示()
Dim x
If k = 1 Then
k = 0
End
End If
Range(“a1”) = Format(Now, “h:mm:ss”)
Application.OnTime Now + TimeValue(“00:00:01”), “时间显示”
x = DoEvents '转让控制权,以便让操作系统处理其它的事件。
End SubSub 结束时间显示()
k = 1 '运行此过程,将结束时间显示程序
End Sub -
VBA常用技巧
2014-12-21 16:39:28技巧189 保护VBA代码 12 189-1 设置工程密码 12 189-2 设置“工程不可查看” 12 技巧190 优化代码 12 190-1 关闭屏幕刷新 12 190-2 使用工作表函数 12 190-3 使用更快的单元格操作方法 12 190-4 使用With语句引用... -
Excel_VBA教程
2014-09-22 11:36:344.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或驱动器(CHDIR语句和CHDRIVE语句) 149 8.创建... -
VBA编程技巧大全
2013-08-05 09:03:19技巧189 保护VBA代码 459 189-1 设置工程密码 459 189-2 设置“工程不可查看” 460 技巧190 优化代码 462 190-1 关闭屏幕刷新 462 190-2 使用工作表函数 464 190-3 使用更快的单元格操作方法 465 190-4 使用With语句... -
这些列当前不具有唯一值_使用VBA代码完成限制重复值的录入,及求当月最后一天日期的方法...
2021-01-26 04:43:21分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单... 171:如何利用VBA代码,使用消息框显示当月最后一天的日期VBA过程代码170:如何利用VBA代码,限制重复值的录入Private Sub Worksh...分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:
NO. 170:如何利用VBA代码,限制重复值的录入
NO. 171:如何利用VBA代码,使用消息框显示当月最后一天的日期
VBA过程代码170:如何利用VBA代码,限制重复值的录入
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 1 Or .Count > 1 Then Exit Sub
If WorksheetFunction.CountIf(Range("A:A"), .Value) > 1 Then
.Select
MsgBox "不能输入重复的人员编号!", 64
Application.EnableEvents = False
.Value = ""
Application.EnableEvents = True
End If
End With
End Sub
代码的解析说明:工作表的Change事件过程,使A列单元格只能录入唯一的人员编号。
代码中使用工作表的CountIf 函数来判断在A列单元格输入的人员编号是否重复。在示例中以所录入的人员编号与A列单元格区域进行比较,如果CountIf 函数的返回值大于1,说明录入的是重复编号。在清除前将Application对象的EnableEvents属性设置为False,禁止触发事件。因为如果不禁用事件,那么在清除重复值的过程中会不断地触发工作表的Change事件,从而造成代码运行的死循环。经过以上的设置,在工作表的A列中只能录入唯一的人员编号,如果录入重复值会进行提示不能输入重复的人员编号!
——————————————————————————————————————————————————————————————————————————————
VBA过程代码171:如何利用VBA代码,使用消息框显示当月最后一天的日期
Sub mynz()
Dim MyDateStr As Byte
MyDateStr = Day(DateSerial(Year(Date), Month(Date) + 1, 0))
MsgBox "本月的最后一天是" & Month(Date) & "月" & MyDateStr & "号"
End Sub
代码的解析说明:上述的Mynz过程配合使用了4个VBA内置函数Year、Month、Day和DateSerial完成计算并使用消息框显示当月最后一天的日期。Date为当前的具体日期。 Month(Date) + 1 表示当前月的下个月。 Day(DateSerial(Year(Date), Month(Date) + 1, 0)) 表示当前月的下个月的前一天。
VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第二册的95讲。
-
Excel VBA 基础教程
2019-01-01 18:51:06目 录 一、VBA语言基础...................................................................................................................1 第一节 标识符.................................................... -
AutoCAD VBA二次开发教程.PDF
2015-07-01 12:31:25第16章介绍了使用VB开发AutoCAD的一些知识(将VBA代码转换到VB中,VB窗体和AutoCAD的焦点切换,使用ActiveXDLL封装带有窗体的VB程序)、搜索某个文件夹中所有的文件和VBAIDE的编程,利用这些知识,完全有可能开发出... -
ExcelVBA程序设计.doc
2011-04-05 21:32:514.获得文件修改的日期和时间(FILEDATETIME函数) 147 5.获得文件大小(FILELEN函数) 147 6.返回和设置文件属性(GETATTR函数和SETATTR函数) 147 7.更改缺省文件夹或驱动器(CHDIR语句和CHDRIVE语句) 149 8.创建... -
EXCEL编程VBA高级教程
2015-04-16 11:40:55一、VBA语言基础...................................................................................................................1 第一节标识符........................................................... -
Excel VBA实用技巧大全 附书源码
2010-10-08 18:59:2402019获取当前宏代码运行的工作簿路径 02020获取包括完整路径的工作簿名称 02021获取工作簿的基本名称 02022获取工作簿的文档属性 02023获取工作簿的保护状态 02024判断工作簿是否创建了自定义工具栏 02025将工作簿... -
excel中161个VBA_自定义函数超级实用
2018-03-28 08:36:32函数作用:导出VBA Project代码.....................97 '97.函数作用:导入VBA Project代码.....................97 '98.函数作用:取得汉字拼音的第一个字母.................98 '99.函数作用:获取两栏中相同的数据..... -
我整理的VBA 自定义函数大全 共138页
2008-11-21 16:14:0396.导出VBA Project代码 97.导入VBA Project代码 98.取得汉字拼音的第一个字母 99.获取两栏中相同的数据 100.选取当前工作表中公式出错的单元格﹐关返回出错个数 101.将工作表中最后一列作为页脚打印在每一面页尾 ... -
-
Excel2007图表完全剖析 8/8
2012-04-01 10:28:28使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 5/8
2012-04-01 10:11:02使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 7/8
2012-04-01 10:23:55使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 6/8
2012-04-01 10:16:46使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 4/8
2012-04-01 10:03:09使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 3/8
2012-04-01 09:55:17使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 2/8
2012-04-01 09:47:25使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel2007图表完全剖析 1/8
2012-04-01 09:42:20使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。... -
Excel百宝箱9.0无限制破解版
2012-02-03 19:05:29【错误代码查询】:查询VBA错误ID号对应的原因及解决办法 【VBA窗体帮助信息查询】:窗体相关的VBA帮助查询,包括事件、方法、属性、对象、集合与控件 【函数运算符符语法查询】:VBA函数以及运算符相关的帮助查询 ... -
Excel百宝箱
2012-10-27 17:09:21【错误代码查询】:查询VBA错误ID号对应的原因及解决办法 【VBA窗体帮助信息查询】:窗体相关的VBA帮助查询,包括事件、方法、属性、对象、集合与控件 【函数运算符符语法查询】:VBA函数以及运算符相关的帮助查询 ... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
VBSCRIP5 -ASP用法详解
2010-09-23 17:15:46Time 函数 返回反映当前系统时间的日期子类型的变体。 Timer 函数 返回时经子夜 12:00 AM 后的秒数。 TimeSerial 函数 返回含有指定时分秒时间的日期子类型的变体。 TimeValue 函数 返回含有时间的日期子类型的... -
VBSCRIPT中文手册
2010-11-12 10:13:06Time 函数 返回反映当前系统时间的日期子类型的变体。 Timer 函数 返回时经子夜 12:00 AM 后的秒数。 TimeSerial 函数 返回含有指定时分秒时间的日期子类型的变体。 TimeValue 函数 返回含有时间的日期子类型的... -
VBScript 语言参考中文手册CHM
2009-04-18 12:32:49Time 函数 返回反映当前系统时间的日期子类型的变体。 Timer 函数 返回时经子夜 12:00 AM 后的秒数。 TimeSerial 函数 返回含有指定时分秒时间的日期子类型的变体。 TimeValue 函数 返回含有时间的日期子类型的...