收藏 分销(赏)

如何在excel中实现阳历转化阴历.doc

上传人:天**** 文档编号:2670403 上传时间:2024-06-04 格式:DOC 页数:10 大小:1.48MB 下载积分:8 金币
下载 相关 举报
如何在excel中实现阳历转化阴历.doc_第1页
第1页 / 共10页
如何在excel中实现阳历转化阴历.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
如何在excel中实现阳历转化阴历 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 10 个人收集整理 勿做商业用途 步骤一,在Excel工作表界面下按<ALT+F11>组合键翻开VBA窗口,进入VBA编辑环境,在其窗口的菜单栏上依次单击“插入〞→“模块〞,可在当前VBA工程中插入模块,并直接进入此模块的代码编辑区域。可在此编辑区域中输入自定义函数的程序代码,如图: Public Function NongLi(Optional XX_DATE As Date)  Dim MonthAdd(11), NongliData〔99), TianGan〔9〕, DiZhi〔11), ShuXiang(11), DayName(30), MonName(12)  Dim curTime, curYear, curMonth, curDay  Dim GongliStr, NongliStr, NongliDayStr  Dim i, m, n, k, isEnd, bit, TheDate  ﻫ'获取当前系统时间  curTime = XX_DATE  '天干名称  TianGan(0〕 = "甲" ﻫTianGan(1) = "乙"  TianGan(2) = "丙"  TianGan〔3) = "丁"  TianGan〔4〕 = "戊"  TianGan〔5) = "己"  TianGan〔6) = "庚" ﻫTianGan(7) = "辛" ﻫTianGan(8) = "壬" ﻫTianGan(9〕 = "癸"  '地支名称  DiZhi〔0〕 = "子"  DiZhi(1) = "丑"  DiZhi(2〕 = "寅"  DiZhi(3) = "卯" ﻫDiZhi(4) = "辰"  DiZhi〔5〕 = "巳"  DiZhi〔6) = "午" ﻫDiZhi(7〕 = "未" ﻫDiZhi(8) = "申"  DiZhi(9〕 = "酉" ﻫDiZhi(10) = "戌" ﻫDiZhi〔11) = "亥" ﻫ'属相名称  ShuXiang〔0) = "鼠" ﻫShuXiang(1〕 = "牛" ﻫShuXiang(2) = "虎" ﻫShuXiang(3〕 = "兔"  ShuXiang(4) = "龙" ﻫShuXiang〔5) = "蛇" ﻫShuXiang(6) = "马" ﻫShuXiang(7) = "羊"  ShuXiang(8) = "猴"  ShuXiang(9〕 = "鸡" ﻫShuXiang(10) = "狗" ﻫShuXiang(11) = "猪"  '农历日期名  DayName(0) = "*"  DayName(1) = "初一" ﻫDayName(2) = "初二"  DayName〔3) = "初三" ﻫDayName(4) = "初四" ﻫDayName(5) = "初五" ﻫDayName〔6〕 = "初六" ﻫDayName(7) = "初七"  DayName(8) = "初八" ﻫDayName〔9) = "初九" ﻫDayName(10) = "初十" ﻫDayName(11) = "十一" ﻫDayName(12) = "十二"  DayName(13) = "十三" ﻫDayName〔14〕 = "十四" ﻫDayName(15〕 = "十五" ﻫDayName〔16) = "十六" ﻫDayName(17) = "十七"  DayName(18) = "十八" ﻫDayName(19) = "十九" ﻫDayName(20) = "二十" ﻫDayName(21〕 = "廿一" ﻫDayName〔22) = "廿二" ﻫDayName(23〕 = "廿三" ﻫDayName〔24) = "廿四" ﻫDayName(25) = "廿五" ﻫDayName(26) = "廿六" ﻫDayName〔27) = "廿七"  DayName(28) = "廿八"  DayName〔29〕 = "廿九"  DayName〔30) = "三十"  '农历月份名 ﻫMonName〔0) = "*" ﻫMonName(1〕 = "正" ﻫMonName(2) = "二" ﻫMonName(3) = "三" ﻫMonName(4) = "四" ﻫMonName(5) = "五"  MonName(6) = "六" ﻫMonName(7) = "七" ﻫMonName〔8) = "八" ﻫMonName(9) = "九"  MonName(10) = "十"  MonName〔11) = "十一"  MonName(12) = "腊" ﻫ'公历每月前面的天数  MonthAdd〔0〕 = 0 ﻫMonthAdd〔1) = 31  MonthAdd(2) = 59 ﻫMonthAdd(3〕 = 90 ﻫMonthAdd〔4) = 120 ﻫMonthAdd(5) = 151 ﻫMonthAdd(6) = 181 ﻫMonthAdd(7) = 212  MonthAdd(8) = 243 ﻫMonthAdd(9) = 273  MonthAdd〔10) = 304  MonthAdd(11) = 334 ﻫ'农历数据  NongliData(0) = 2635  NongliData(1) = 333387  NongliData(2〕 = 1701 ﻫNongliData(3) = 1748  NongliData(4) = 267701  NongliData(5) = 694  NongliData(6) = 2391 ﻫNongliData(7) = 133423 ﻫNongliData(8〕 = 1175  NongliData(9) = 396438 ﻫNongliData(10) = 3402  NongliData(11) = 3749 ﻫNongliData(12) = 331177  NongliData〔13) = 1453 ﻫNongliData(14) = 694  NongliData(15) = 202126 ﻫNongliData(16) = 2350 ﻫNongliData〔17〕 = 465197 ﻫNongliData〔18) = 3221 ﻫNongliData(19) = 3402 ﻫNongliData〔20) = 400202  NongliData(21〕 = 2901  NongliData(22〕 = 1386  NongliData(23) = 267611 ﻫNongliData(24) = 605 ﻫNongliData(25) = 2349  NongliData(26〕 = 137515  NongliData(27) = 2709 ﻫNongliData(28〕 = 464533  NongliData(29) = 1738  NongliData(30) = 2901 ﻫNongliData(31〕 = 330421 ﻫNongliData(32) = 1242 ﻫNongliData(33) = 2651  NongliData(34) = 199255 ﻫNongliData〔35) = 1323  NongliData(36) = 529706  NongliData(37) = 3733 ﻫNongliData(38) = 1706 ﻫNongliData〔39) = 398762  NongliData(40) = 2741 ﻫNongliData〔41) = 1206 ﻫNongliData(42) = 267438 ﻫNongliData(43) = 2647 ﻫNongliData(44〕 = 1318  NongliData(45) = 204070 ﻫNongliData(46) = 3477 ﻫNongliData(47〕 = 461653  NongliData(48) = 1386  NongliData(49) = 2413  NongliData(50) = 330077 ﻫNongliData(51) = 1197 ﻫNongliData(52) = 2637 ﻫNongliData(53) = 268877  NongliData(54〕 = 3365 ﻫNongliData(55) = 531109 ﻫNongliData(56) = 2900  NongliData(57〕 = 2922  NongliData(58) = 398042 ﻫNongliData(59) = 2395 ﻫNongliData(60) = 1179 ﻫNongliData〔61) = 267415  NongliData(62) = 2635  NongliData(63) = 661067 ﻫNongliData(64〕 = 1701 ﻫNongliData(65) = 1748  NongliData〔66) = 398772 ﻫNongliData(67) = 2742 ﻫNongliData(68) = 2391 ﻫNongliData〔69) = 330031 ﻫNongliData(70) = 1175 ﻫNongliData(71〕 = 1611 ﻫNongliData(72〕 = 200010 ﻫNongliData〔73) = 3749 ﻫNongliData(74) = 527717 ﻫNongliData(75) = 1452 ﻫNongliData(76) = 2742  NongliData〔77〕 = 332397  NongliData(78〕 = 2350  NongliData〔79) = 3222  NongliData〔80) = 268949 ﻫNongliData(81〕 = 3402  NongliData(82) = 3493 ﻫNongliData(83) = 133973  NongliData〔84〕 = 1386 ﻫNongliData(85) = 464219  NongliData(86) = 605  NongliData(87〕 = 2349  NongliData(88) = 334123  NongliData(89) = 2709  NongliData(90) = 2890  NongliData(91) = 267946 ﻫNongliData(92) = 2773  NongliData(93〕 = 592565  NongliData(94〕 = 1210 ﻫNongliData〔95) = 2651 ﻫNongliData(96) = 395863  NongliData〔97) = 1323  NongliData〔98) = 2707  NongliData〔99) = 265877 ﻫ'生成当前公历年、月、日 ==> GongliStr  curYear = Year(curTime) ﻫcurMonth = Month(curTime) ﻫcurDay = Day〔curTime)  GongliStr = curYear & "年" ﻫIf (curMonth < 10〕 Then  GongliStr = GongliStr & "0" & curMonth & "月"  Else ﻫGongliStr = GongliStr & curMonth & "月"  End If ﻫIf (curDay < 10〕 Then ﻫGongliStr = GongliStr & "0" & curDay & "日"  Else  GongliStr = GongliStr & curDay & "日"  End If ﻫ'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)  TheDate = (curYear - 1921) * 365 + Int〔〔curYear - 1921) / 4〕 + curDay + MonthAdd〔curMonth - 1) - 38  If 〔(curYear Mod 4) = 0 And curMonth > 2) Then  TheDate = TheDate + 1  End If  '计算农历天干、地支、月、日  isEnd = 0 ﻫm = 0 ﻫDo ﻫIf (NongliData〔m) < 4095〕 Then  k = 11 ﻫElse  k = 12  End If ﻫn = k  Do  If 〔n < 0〕 Then  Exit Do ﻫEnd If ﻫ'获取NongliData(m)的第n个二进制位的值 ﻫbit = NongliData(m)  For i = 1 To n Step 1  bit = Int(bit / 2) ﻫNext ﻫbit = bit Mod 2 ﻫIf (TheDate <= 29 + bit〕 Then ﻫisEnd = 1  Exit Do ﻫEnd If  TheDate = TheDate - 29 - bit  n = n - 1  Loop  If (isEnd = 1) Then  Exit Do ﻫEnd If  m = m + 1 ﻫLoop ﻫcurYear = 1921 + m  curMonth = k - n + 1  curDay = TheDate ﻫIf (k = 12〕 Then  If 〔curMonth = (Int(NongliData(m) / 65536) + 1〕) Then  curMonth = 1 - curMonth  ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)〕 Then  curMonth = curMonth - 1 ﻫEnd If  End If ﻫ'生成农历天干、地支、属相 ==> NongliStr  NongliStr = "农历" & TianGan(((curYear - 4) Mod 60〕 Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) & "年"  NongliStr = NongliStr & "(" & ShuXiang〔((curYear - 4) Mod 60) Mod 12) & ")"  '生成农历月、日 ==> NongliDayStr  If (curMonth < 1) Then ﻫNongliDayStr = "闰" & MonName〔-1 * curMonth〕  Else  NongliDayStr = MonName(curMonth)  End If  NongliDayStr = NongliDayStr & "月" ﻫNongliDayStr = NongliDayStr & DayName〔curDay)  ﻫNongLi = NongliStr & NongliDayStr  End Function 步骤2,单击窗口右上角的“关闭〞按钮关闭VBA编辑窗口,返回到工作表窗口中。此时即可在当前工作簿中使用刚刚创立的自定义函数,并且可以在函数列表的“用户定义〞类别中找到此自定义函数。如图 步骤3,要使自定义函数能够应用在其他工作簿中,需要将这个包含自定义函数的工作簿另存为“加载宏〞。依次单击“Office按钮〞→“另存为〞→“其他格式〞,翻开“另存为〞对话框,在“保存类型〞下拉列表中选择“Excel 加载宏〞,然后为此加载宏命名后单击“保存〞按钮进展保存。 ﻫﻫ 步骤4,保存后需要在加载项中添加加载宏。单击“Office按钮〞→“Excel选项〞,翻开“Excel选项〞对话框,在左侧类别中选择“加载项〞,然后在右侧下方的“管理〞下拉列表中选择“Excel 加载项〞,再单击“转到〞按钮,翻开“加载宏〞对话框,在其中勾选之前所保存的包含自定义函数的加载宏前面的复选框,最后单击“确定〞即可完成加载项的添加。 步骤五,做好阳历列后,在另外一列选择插入自定义函数,确定,然后大功告成。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服