Board logo

標題: [發問] 民國日期轉西元日期檢核 [打印本頁]

作者: dou10801    時間: 2021-7-1 16:17     標題: 民國日期轉西元日期檢核

本帖最後由 dou10801 於 2021-7-1 16:20 編輯

請教各位先進,民國日期轉西元日期檢核,如果日期不正確如何跳回原來的位置,重新輸入,感謝.
作者: singo1232001    時間: 2021-7-1 23:33

本帖最後由 singo1232001 於 2021-7-1 23:47 編輯

回復 1# dou10801



補充

2000/1/ x
2000/1 x
2000/ x
2000 x

99/1/ x
99/1 x
99/ x
99 x

401/1/1 x
400/1/1 ok

99/1/1 ok
99-1-1 ok
99.1.1 ok
110/1/ ok
110-1-1 ok
110.1.1 ok
作者: singo1232001    時間: 2021-7-1 23:56

本帖最後由 singo1232001 於 2021-7-1 23:57 編輯

回復 1# dou10801


  剛剛有點bug 已更新
作者: singo1232001    時間: 2021-7-2 07:09

本帖最後由 singo1232001 於 2021-7-2 07:17 編輯

回復 1# dou10801

抱歉 再更正一次 更正碰上2/29號的bug
作者: singo1232001    時間: 2021-7-2 08:21

本帖最後由 singo1232001 於 2021-7-2 08:35 編輯

回復 4# singo1232001

這個版本不同 滑鼠並不會被綁住  enter與tab會被綁住
看喜好選擇

另外補充
縮排只是美觀而已 並沒有實際作用 而且很容易造成程序錯亂
若有需要改寫程序或研究程序時
請用原本展開的狀態coding與理解

若未來有需要美觀 再考慮縮排
v4是用if寫的
v5是用select case寫的
作者: singo1232001    時間: 2021-7-2 08:42

回復 5# singo1232001


    v5 bug 已修正
作者: dou10801    時間: 2021-7-2 09:48

回復 6# singo1232001 感謝 熱狗慶大大指導,且內容均有註解,詢問一個問題,給我很多思路,雖不能完全了解內碼含意,但會一一學習,慢慢消化,其中,Controls(Replace(da, "textBox", "Label", , , vbTextCompare)).Caption = CDate(t) '將正確日期放置label101~103,還無法融會貫通,敬請大大,指導.
作者: 准提部林    時間: 2021-7-2 10:47

輸入錯誤時,返回輸入格
__用msgbox後, 駐點會消失(沒有閃爍), 還是要再點一下輸入格!!!
作者: 准提部林    時間: 2021-7-2 11:19

用Lab代替msgbox
[attach]33492[/attach]
作者: dou10801    時間: 2021-7-2 14:47

回復 9# 准提部林 感謝 准大指導,其中ActiveControl = "" 屬性,是那個控件,其作用為何,謝謝.
作者: 准提部林    時間: 2021-7-2 15:14

回復 10# dou10801


就是當下操作的控項, 與activecell, activesheet相同, 可不須指定名稱~~
作者: 准提部林    時間: 2021-7-2 15:19

回復 10# dou10801

多加一個指令較妥:
Lab_Msg.Caption = "": Cancel = False '加紅色這一段
作者: singo1232001    時間: 2021-7-2 20:23

本帖最後由 singo1232001 於 2021-7-2 20:25 編輯
回復  singo1232001 感謝 熱狗慶大大指導,且內容均有註解,詢問一個問題,給我很多思路,雖不能完全了解內碼含 ...
dou10801 發表於 2021-7-2 09:48


     Controls(Replace(da, "textBox", "Label", , , vbTextCompare)).Caption = CDate(t)

    da 是由文字方塊事件觸發傳過來的name   比如"textbox101"

    中間的 Replace(da, "textBox", "Label", , , vbTextCompare)
    replace 將textbox101 文字 取代成 label101 文字的意思
                                                                              vbTextCompare 代表不區分大小寫 避免大小寫會出錯

    所以就變成
    Controls(Label101).caption = CDate(t)   
    最後意思就是
    Label101.caption = CDate(t)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)