Board logo

標題: 以中華民國方式輸入日期 [打印本頁]

作者: myleoyes    時間: 2012-1-12 12:01     標題: 以中華民國方式輸入日期

各位前輩你們好!
            前輩!!小弟想以中華民國方式輸入出生年月日
             ZZ = Application.InputBox("輸入日期", "請輸入你的出生年月日", "82/1/12", Type:=2)
             [A7] = Format(ZZ, "[$-404]e/m/d;@")
             但得到的A7=71/1/12少11年請問程式要如何寫
             再則當日期超過100年就無法正確顯示不知有何方式解決問題,
             請知道的前輩,不吝賜教謝謝再三!!
作者: Hsieh    時間: 2012-1-12 13:01

回復 1# myleoyes


    ZZ = InputBox("輸入日期", "請輸入你的出生年月日", "82/1/12")
[A7] = CDate("R" & ZZ): [A7].NumberFormat = "[$-404]e/m/d;@"
作者: myleoyes    時間: 2012-1-12 21:35

回復 2# Hsieh
偶像前輩!謝謝!!為何出現執行階段錯誤'13':型態不符合呢?
                請再麻煩一下謝謝再三!!
作者: Hsieh    時間: 2012-1-12 21:54

回復 3# myleoyes
請確認INPUTBOX輸入中華民國日期,並且ZZ應宣告為String
作者: myleoyes    時間: 2012-1-13 11:58

回復 4# Hsieh
偶像前輩!謝謝!!程式沒問題
       問題是為何它不能在Win7的作業系統執行呢?
       也就是說小弟用Win7的作業系統配2007的Excel
       執行程式時會出現型態不符合
       但在Win-XP的作業系統配2007的Excel
       執行程式是OK!!的
       在Vista的作業系統配2007的Excel
       執行程式也是沒問題?
       公司的電腦與同事的電腦,筆電也是同樣結果
       不知為何?請前輩再辛苦,謝謝再三!!
       請有看到此篇文章的前輩!可否也測試一下
       是否也有相同的問題呢?謝謝大家
作者: Hsieh    時間: 2012-1-16 23:22

回復 5# myleoyes
原因不明,改用以下方式試試看
ZZ = InputBox("輸入日期", "請輸入你的出生年月日", "82/1/12")
a = Split(ZZ, "/")
a(0) = a(0) + 1911
[A7] = Join(a, "/")
[A7].NumberFormat = "e/m/d"
作者: myleoyes    時間: 2012-1-17 21:26

回復 6# Hsieh
偶像前輩!辛苦你囉!謝謝再三!!
作者: myleoyes    時間: 2012-3-7 11:43

各位前輩你們好!
         前輩!!這樣的日期形態程式無法下拉
  Sub 日期()
      ZZ = InputBox("輸入日期", "請輸入日期", "101/12/30")
      If ZZ = 0 Or ZZ = "" Then End
      A = Split(ZZ, "/")
      A(0) = A(0) + 1911
      [B3] = Join(a, "/")
      [B3].NumberFormat = "e/m/d"
      [B3] = Format(ZZ, "[$-404]e/m/d")
      [B3] = ZZ
      Range("B3:B" & [a152].End(3).Row).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlYear, Step:=1
      [B:B].EntireColumn.AutoFit
End Sub
      程式寫出的[B3] =101/12/30
      而B4=102/12/30 公式B4=EDATE(B3,12)這樣是錯誤值
      請問這兩個問題 程式與公式要如何做好?
      請知道的前輩,不吝賜教謝謝再三!!
作者: register313    時間: 2012-3-7 12:30

回復 8# myleoyes
  1. Sub 日期()
  2. ZZ = InputBox("輸入日期", "請輸入日期", "101/12/30")
  3. If ZZ = 0 Or ZZ = "" Then End
  4. a = Split(ZZ, "/")
  5. a(0) = a(0) + 1911
  6. [B3] = Join(a, "/")
  7. [B3].NumberFormat = "e/m/d"
  8. Range("B3:B" & [A152].End(3)).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, Step:=1
  9. [B:B].EntireColumn.AutoFit
  10. End Sub
複製代碼

作者: myleoyes    時間: 2012-3-7 21:38

回復 9# register313
前輩! 謝謝!!
         原來!原程式是多囉!這兩行
                  [B3] = Format(ZZ, "[$-404]e/m/d")
                  [B3] = ZZ
         而前輩! 的這行有誤
         Range("B3:B" & [A152].End(3)).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, Step:=1
         應該是這樣
        Range("B3:B" & [a152].End(3).Row).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlYear, Step:=1
         謝謝再三!!




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