相关文章推荐
勤奋的充电器  ·  如何在Excel ...·  2 月前    · 
打酱油的甘蔗  ·  Excel ...·  2 月前    · 
强悍的海龟  ·  RH的數位夢想: VBA-好用的資料型態檢查函數·  2 月前    · 
谦虚好学的石榴  ·  ACCESS VBA変数のデータ型 - ...·  2 月前    · 
魁梧的书签  ·  Excel VBA ...·  2 月前    · 
温文尔雅的书包  ·  Android Jetpack ...·  1 年前    · 
鬼畜的冲锋衣  ·  生产和测试和预生产的数据如何同步_生产环境的 ...·  1 年前    · 
幸福的梨子  ·  人工智能贾维斯_贾维斯人工智能_贾斯珀使用J ...·  2 年前    · 
满身肌肉的小虾米  ·  jqGrid ...·  2 年前    · 
暴走的橡皮擦  ·  python - HuggingChat ...·  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 归档
 
推荐文章
勤奋的充电器  ·  如何在Excel VBA中运用IsNumeric函数-百度经验
2 月前
打酱油的甘蔗  ·  Excel VBAで値が数値であるかどうかチェックする:IsNumeric - ポップインサイト
2 月前
强悍的海龟  ·  RH的數位夢想: VBA-好用的資料型態檢查函數
2 月前
谦虚好学的石榴  ·  ACCESS VBA変数のデータ型 - たすけてACCESS
2 月前
魁梧的书签  ·  Excel VBA 整数か小数点ありか判定する - ray88’s diary
2 月前
温文尔雅的书包  ·  Android Jetpack Room数据库全解析_room是google提供的吗-CSDN博客
1 年前
鬼畜的冲锋衣  ·  生产和测试和预生产的数据如何同步_生产环境的事件 同步到测试环境-CSDN博客
1 年前
幸福的梨子  ·  人工智能贾维斯_贾维斯人工智能_贾斯珀使用JRBeanCollectionDataSource进行报告 - 腾讯云开发者社区 - 腾讯云
2 年前
满身肌肉的小虾米  ·  jqGrid 改变url参数之后重新加载无效_jqgrid url地址里的参数改不掉_花哥码天下的博客-CSDN博客
2 年前
暴走的橡皮擦  ·  python - HuggingChat API? - Stack Overflow
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号