註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 如何比較 民國日期
返回列表
下一主題
上一主題
發帖
如何比較 民國日期
Andy2483
發短消息
加為好友
Andy2483
(厚臉皮的學生)
當前離線
UID
36777
帖子
1447
主題
40
精華
0
積分
1471
金錢
1471
點名
0
作業系統
Windows 7
軟體版本
Excel 2010 & 2016
閱讀權限
50
性別
男
來自
台灣
在線時間
1429 小時
註冊時間
2020-7-15
最後登錄
2025-5-5
暱稱:
厚臉皮的學生
大學生
帖子
1447
主題
40
精華
0
積分
1471
點名
0
作業系統
Windows 7
軟體版本
Excel 2010 & 2016
閱讀權限
50
性別
男
來自
台灣
註冊時間
2020-7-15
最後登錄
2025-5-5
1
#
跳轉到
»
正序看帖
打印
字體大小:
t
T
發表於 2023-4-27 14:17
|
只看該作者
如何比較 民國日期
各位前輩好,後學請教各位前輩
有什麼方式可以改善兩個民國
日期
邏輯值與普通認知不同
EX: 99/4/30 應該要小於 100/4/30,可是以下範例邏輯值卻是 False
後學駑鈍
請教各位前輩:後學出了什麼錯誤?怎麼正確比較?
Option Explicit
Sub TEST()
Dim T, T1
T = CDate("99/4/30")
T1 = CDate("100/4/30")
MsgBox T < T1
End Sub
執行結果:
下載
(14.75 KB)
2023-4-27 14:15
樓主熱帖
請教 公式_跳欄並且符合條件才加總
Excel VBA如何檢查_含有註解格數量
Excel VBA如何 快速取消合併儲存格_空格填入
請教 VBA 如何日期+時間轉化為文字
橫式資料轉換為直式資料_各梯次名單
Excel VBA如何檢查_含有格式化條件儲存格數
請教 公式_跳欄加總
自動上底色與字色 並自動調整反差易於識別
Excel是如何判別使用的資料列是否連續
記錄表建立問題請教
收藏
分享
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流
shuo1125
發短消息
加為好友
shuo1125
當前離線
UID
37578
帖子
121
主題
8
精華
0
積分
170
金錢
170
點名
0
作業系統
win10
軟體版本
Office2016
閱讀權限
20
性別
男
在線時間
463 小時
註冊時間
2021-1-21
最後登錄
2024-8-20
中學生
帖子
121
主題
8
精華
0
積分
170
點名
0
作業系統
win10
軟體版本
Office2016
閱讀權限
20
性別
男
註冊時間
2021-1-21
最後登錄
2024-8-20
4
#
發表於 2023-4-27 22:58
|
只看該作者
回復
2#
准提部林
回復
3#
Andy2483
受教了...感謝高手無私的奉獻!!
TOP
Andy2483
發短消息
加為好友
Andy2483
(厚臉皮的學生)
當前離線
UID
36777
帖子
1447
主題
40
精華
0
積分
1471
金錢
1471
點名
0
作業系統
Windows 7
軟體版本
Excel 2010 & 2016
閱讀權限
50
性別
男
來自
台灣
在線時間
1429 小時
註冊時間
2020-7-15
最後登錄
2025-5-5
暱稱:
厚臉皮的學生
大學生
帖子
1447
主題
40
精華
0
積分
1471
點名
0
作業系統
Windows 7
軟體版本
Excel 2010 & 2016
閱讀權限
50
性別
男
來自
台灣
註冊時間
2020-7-15
最後登錄
2025-5-5
3
#
發表於 2023-4-27 16:41
|
只看該作者
本帖最後由 Andy2483 於 2023-4-27 16:47 編輯
回復
2#
准提部林
謝謝前輩指導
瞭解了,學習方案如下,請前輩再指導
Sub TEST()
Dim T, T1
T = Split("99/4/30", "/"): T(0) = Val(T(0)) + 1911: T = CDate(Join(T))
'空白鍵隔開也辨認出來是日期,真神奇
T1 = Split("100/4/30", "/"): T1(0) = Val(T1(0)) + 1911: T1 = CDate(Join(T1))
MsgBox T < T1
End Sub
'執行結果是True
Sub YYY()
MsgBox Format("r" & "100/1/1", "yyyy/mm/dd")
End Sub
'執行結果是 r100/1/1
============================================
補充:
關鍵在+1911
Sub TEST_1()
Dim T, T1
T = "99/4/30": T = (Val(T) + 1911) & Mid(T, InStr(T, "/")): T = CDate(T)
T1 = "100/4/30": T1 = (Val(T1) + 1911) & Mid(T1, InStr(T1, "/")): T1 = CDate(T1)
MsgBox T < T1
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流
TOP
准提部林
發短消息
加為好友
准提部林
當前離線
UID
13768
帖子
2842
主題
10
精華
0
積分
2898
金錢
2898
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
在線時間
2115 小時
註冊時間
2013-5-13
最後登錄
2025-4-28
版主
帖子
2842
主題
10
精華
0
積分
2898
點名
0
作業系統
〔略〕
軟體版本
〔略〕
閱讀權限
100
性別
男
來自
〔略〕
註冊時間
2013-5-13
最後登錄
2025-4-28
2
#
發表於 2023-4-27 16:11
|
只看該作者
本帖最後由 准提部林 於 2023-4-27 16:12 編輯
民國日期要先轉成西元, 才能比較
方法一:
split分割, 年+1911, 再合併
tr = split("100/1/1","/")
tr(0)= val(tr(0)) + 1911
tt = join(tr, "/")
方法二:
Format("r" & "100/1/1", "yyyy/mm/dd")
但可能有些版本不支持
TOP
靜思自在 :
滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲