设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 19416|回复: 56
打印 上一主题 下一主题

[基础应用] [分享]crdotlin的Excel版超级农历

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-16 16:42:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是crdotlin版主分享的一个作品,主程序由Sean Lin (林洵賢)分享
当然这是TW版的了,如果您有精力的话,可以转化成这边的农历版
不多说了,下面是crdotlin的Excel版超级农历。

===========================================

真正的 [超級月曆] 在這裡:[農曆月曆與世界時間DHTML程式]]。這個東西若不把它弄到EXCEL來使用,真是暴殄天物!
話說Microsoft也真奇怪,農曆在華人世界通行了幾十世紀(漢章帝元和二年,相當於公元85年,朝廷下令在全國推行干支紀年),竟然把它忽略了!MS Office軟體到現在還沒有農曆日期格式?因此,各辦公室軟體論壇到處有詢問如何設置農曆日期格式的問題。各路高手也紛紛費盡心思,竭盡所能發展可以計算農曆日期的增益集(加載宏)來滿足網友的需求。其中不乏精采之作,但看到上述的超級月曆後,心中還是躍躍欲試,想將它轉換到VBA來用。
作為EXCEL工作簿實際使用上,並沒有將世界時間部分轉換,而在月曆上增加一個 [日期格式] 組合框來方便使用者輸入日期或者變更工作表中選定的範圍之日期格式。還有特別製作了一個 [農曆日期格式自訂義函數]。
現在就來開箱分享一下。
本檔案是以增益集的形式存檔(Excel 97-2003 增益集),所以當您 [開啟舊檔] 載入後並不會看見其工作簿視窗,而是在作用中的視窗之右下角產生一個 [開啟月曆] 的按鈕,如圖

當要使用月曆時,只要點擊一下 [開啟月曆] 按鈕,就會出現當月的月曆,如圖

如您所見,除了沒有世界時間外其他外觀跟原創大致相同,但多了一個 [日期格式] 組合框及一個 [轉換選取範圍日期格式]按鈕。當你點選任何一個日期標籤後,就會將該日期以組合框所設定的格式寫入當前儲存格中。反之,若已經有一堆各種格式的日期資料存在工作表中,你可以先將要改變日期格式的儲存格選取,然後按一下 [轉換選取範圍日期格式] 按鈕,就會將選取範圍的日期通通改成 [日期格式]組合框所設的格式了。如下圖,兩組日期內容是一樣的,選取第二組(A7:A10)後,再按一下 [轉換選取範圍日期格式]按鈕,就將它的格式改成一致了。

另外,就是 [農曆日期格式自訂義函數]了。這個專門做為EXCEL自訂義函數,供設定公式使用。

用法:
=LunarDateF ( reference, index )
其中 reference : 參考到的儲存格位址
        index : 農曆日期顯示形式,有3種
                1:農曆m月d日
                2:農曆干支年m月d日
                3:農曆干支年干支月干支日
效果如圖

請注意,使用函數轉換的儲存格內容已經變成字串了,這是不可逆的。
其他應該沒甚麼好說的啦!
我的作業環境:Vista, Office 2007
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-3-16 17:11:08 | 只看该作者
好东东, 我记得有个版主改装成Access版, 原来Excel也早有流传. 收藏了
3#
发表于 2008-3-16 18:42:19 | 只看该作者
Jonathan.K 一来就给大家一个见面礼,收下了
4#
发表于 2008-3-27 09:08:20 | 只看该作者
回复,学习中
5#
发表于 2008-3-29 23:42:58 | 只看该作者
[:50] [:50] [:50]
6#
发表于 2008-4-1 12:31:14 | 只看该作者
收藏
[:50]
7#
发表于 2008-4-2 09:14:28 | 只看该作者
模块CalendarM中:
'复活节只出现在3或4月
If m = 2 Or m = 3 Then
    Dim estDay As easterType
    estDay = easter(Y)
    If m = estDay.m Then myThis(estDay.d - 1).solarFestival = myThis(estDay.d - 1).solarFestival & " 复活节"
End If


当点击“年”增加到2017-2018年时出现错误:下标越界。
myThis(estDay.d - 1).solarFestival = myThis(estDay.d - 1).solarFestival & " 复活节"

还有2029、2040年
不知是何原因。

[ 本帖最后由 chenwm1973 于 2008-4-11 23:49 编辑 ]
8#
发表于 2008-4-7 21:14:03 | 只看该作者
[:28] [:28]
9#
发表于 2008-4-11 14:25:45 | 只看该作者
[:50] [:34] [:32]
10#
发表于 2008-4-19 00:49:41 | 只看该作者
不错的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 02:53 , Processed in 0.127442 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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