ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cheyuze

[分享] 生日计算器(区分农历、公历)农历公历互转

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-4-26 07:51 | 显示全部楼层

求教,能不能用公历折算成当年的农历,然后再折算成今年的公历?谢谢

TA的精华主题

TA的得分主题

发表于 2020-4-26 08:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangweihebtu 发表于 2020-4-26 07:51
求教,能不能用公历折算成当年的农历,然后再折算成今年的公历?谢谢

可以的,请参考已经更新的3楼附件!

TA的精华主题

TA的得分主题

发表于 2020-4-26 08:42 | 显示全部楼层
本帖最后由 YZC51 于 2020-4-26 10:02 编辑

如图
ss1.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-4-26 12:36 | 显示全部楼层
wangweihebtu 发表于 2020-4-26 07:51
求教,能不能用公历折算成当年的农历,然后再折算成今年的公历?谢谢

请参考已经更新的19楼附件!

TA的精华主题

TA的得分主题

发表于 2020-4-26 13:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 YZC51 于 2020-4-26 13:25 编辑

农历转公历函数(增强功能)
  1. Function NltoGl(nlrq, Optional gs As Integer) ' As Date
  2.     Dim conDate As Date, setDate As Date, tDate As Date
  3.     Dim valdate, IsGetGl As Boolean, bm$
  4.     Dim AddMonth As Integer, AddDay As Integer, Addyear As Integer, getDay As Integer
  5.     Dim i%, nMonth%, Myr%, r1, n1%
  6.     Dim Sht2 As Worksheet
  7.     nf = year(Date) + gs - 1
  8.     yr = Mid(nlrq, 5)
  9.     If gs Then nlrq = nf & yr
  10.     Application.ScreenUpdating = False
  11.     If Len(nlrq) = 0 Then NltoGl = "": Exit Function
  12.     NYR = Split(nlrq, "-")
  13.     tYear = NYR(0)
  14.     tMonth = NYR(1)
  15.     tDay = NYR(2)
  16.     'On Error Resume Next
  17.     If tYear > 2200 Or tYear < 1900 Then Exit Function          '不是有效日期则退出过程
  18.     Call nonglibm
  19.     bm = Nlbm(tYear)
  20.     Addyear = tYear                                             '农历正月初一的公历年份
  21.     AddMonth = Val(Mid(bm, 15, 2))                              '农历正月初一的公历月份
  22.     AddDay = Val(Mid(bm, 17, 2))                                '农历正月初一的公历日序
  23.     conDate = DateSerial(Addyear, AddMonth, AddDay)             '农历正月初一的公历日期
  24.    
  25.     AddDay = tDay
  26.     If InStr(1, tMonth, "闰") > 0 Then
  27.         nMonth = Val(Mid(tMonth, 2)) + 1
  28.     Else
  29.         nMonth = tMonth
  30.         If Val("&H" & Mid(bm, 14, 1)) > 0 And tMonth > Val("&H" & Mid(bm, 14, 1)) Then nMonth = tMonth + 1
  31.     End If
  32.     For i = 1 To nMonth - 1
  33.         AddDay = AddDay + 29 + Val(Mid(bm, i, 1))
  34.     Next i
  35.     setDate = DateAdd("d", AddDay - 1, conDate) - x
  36.     NltoGl = Format(setDate, "yyyy-mm-dd")
  37.     Application.ScreenUpdating = True
  38. End Function
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 14:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wangweihebtu 发表于 2020-4-26 07:51
求教,能不能用公历折算成当年的农历,然后再折算成今年的公历?谢谢

我的1L也就是这样的逻辑的~

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-26 14:49 | 显示全部楼层
YZC51 发表于 2020-4-26 13:15
农历转公历函数(增强功能)

这个相对原来的是更新增强了什么内容哇?~

TA的精华主题

TA的得分主题

发表于 2020-4-26 15:01 | 显示全部楼层
试试
=NltoGl(B2)
=NltoGl(B2,1)
=NltoGl(B2,2)
=NltoGl(B2,3)

TA的精华主题

TA的得分主题

发表于 2020-4-26 15:02 | 显示全部楼层
在19楼附件中的公农历互转表格中输入

TA的精华主题

TA的得分主题

发表于 2020-4-26 15:22 | 显示全部楼层
本帖最后由 zhengrui-csb 于 2020-4-26 15:24 编辑

农历是用vba弄出来的?能不能用函数或者数组什么的实现?谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 00:44 , Processed in 0.044237 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表