相关文章推荐
魁梧的灭火器  ·  只需要给出过去10年这一天的日期 - CSDN文库·  9 月前    · 
粗眉毛的沙滩裤  ·  CSS 选择器 | 菜鸟教程·  1 年前    · 
聪明伶俐的双杠  ·  烦人的Resolved versions ...·  2 年前    · 
大方的地瓜  ·  Pstools 存取被拒/拒絕訪問 - ...·  2 年前    · 
茫然的木瓜  ·  Python勒索软件来袭,国产杀软集体失身 ...·  2 年前    · 
Code  ›  VBA代码库12:处理日期和时间开发者社区
vba
https://cloud.tencent.com/developer/article/1845660
火爆的围巾
2 年前
作者头像
fanjy
0 篇文章

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

前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 完美Excel > 正文

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

发布 于 2021-07-12 16:16:33
981 0
举报

本文中的代码来自于www.cpearson.com,特辑录于此,方便在需要时参考。

下面的过程和函数代码用于处理日期和时间。

指定年的第一个星期一

下面的函数返回指定年的第一个星期一的日期。

Public Function YearStart(WhichYear As Integer) As Date

Dim WeekDay As Integer

Dim NewYear As Date

NewYear =DateSerial(WhichYear, 1, 1)

WeekDay =(NewYear - 2) Mod 7

If WeekDay < 4 Then

YearStart = NewYear - WeekDay

Else

YearStart = NewYear - WeekDay + 7

End If

End Function

注意,本文下面的程序将会使用这个函数。

指定周数的星期一

下面的函数返回指定年指定周的星期一的日期。

Public Function WeekStart(WhichWeek As Integer,WhichYear As Integer) As Date

WeekStart= YearStart(WhichYear) + ((WhichWeek - 1) * 7)

End Function

判断是否闰年

下面的函数在指定年是闰年时返回TRUE,否则返回FALSE。

Public Function IsLeapYear(Y As Integer)

IsLeapYear = Month(DateSerial(Y, 2, 29)) = 2

End Function

某星期第几天的日期

下面的函数返回指定年月的指定周的指定天的日期,例如,Y=2021,M=6,N=2,DOW=3,将返回2021年6月第2周第3天的日期,即2021年6月8日。默认情况下,星期日=1,星期六=7。

Public Function NthDayOfWeek(Y As Integer, M As Integer, N As Integer, DOW As Integer) As Date

NthDayOfWeek = DateSerial(Y, M, (8 - WeekDay(DateSerial(Y, M, 1), (DOW +1) Mod 8)) + ((N - 1) * 7))

End Function

计算年龄

下面的函数计算年龄,其中Date1代表出生日期。

Function Age(Date1 As Date, Date2 As Date) As String

Dim Y As Integer

Dim M As Integer

Dim D As Integer

Dim Temp1 As Date

Temp1 =DateSerial(Year(Date2), Month(Date1), Day(Date1))

Y =Year(Date2) - Year(Date1) + (Temp1 > Date2)

M =Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))

D =Day(Date2) - Day(Date1)

If D <0 Then

M = M- 1

D =Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1

End If

Age = Y& "年"& M & "月"& D & "日"

End Function

使用Find方法查找日期

由于Excel是以系列号数值来保存日期的,因此使用Find方法查找日期需要一些技巧。例如,要查找工作表中输入的日期“1977-6-20”,可以使用语句:

Set FoundCell =Cells.Find(What:=DateValue("1977-6-20"), LookIn:=xlFormulas)

在编程中,往往要使用VBA代码来处理日期,上述代码可供类似情形参考。

点击展开阅读全文
文章分享自微信公众号:
完美Excel
完美Excel

扫码关注公众号

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

原始发表:2021-06-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

date
find
function
integer
public
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
魁梧的灭火器  ·  只需要给出过去10年这一天的日期 - CSDN文库
9 月前
粗眉毛的沙滩裤  ·  CSS 选择器 | 菜鸟教程
1 年前
聪明伶俐的双杠  ·  烦人的Resolved versions for app (26.1.0) and test app (27.1.1) differ问题_51CTO博客_烦人的村民
2 年前
大方的地瓜  ·  Pstools 存取被拒/拒絕訪問 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
2 年前
茫然的木瓜  ·  Python勒索软件来袭,国产杀软集体失身 - 腾讯云开发者社区-腾讯云
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号