XL2000: 巨集內傳回的日期是四年過早

文章翻譯 文章翻譯
文章編號: 213593 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

徵狀

當您執行從工作表儲存格巨集所傳回的日期使用日期的巨集可能是四年和一個日期早於實際日期。

發生的原因

當您在 [選項] 對話方塊的 [計算方式] 索引標籤中選取 1904年日期系統,並其中一種下列情況成立時,則為 True,巨集傳回也就是 4 年又 1 天稍早的日期:

  • 巨集時它會儲存日期,請使用 Value2 屬性。

    -或者-

  • 當它會儲存日期巨集在 Microsoft Excel 應用程式媒體櫃中使用函式。

其他可行方案

下列巨集判定 1904 年日期系統是否已選取、 將日期轉換為 1900 年日期系統,並傳回預期的日期。

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。
若要將巨集請依照下列步驟執行:

  1. 以插入新的活頁簿、 按一下 [檔案] 功能表上的 [新增]、 按一下 活頁簿],然後按一下 [確定]
  2. 在 [工具] 功能表上按一下 [選項],按一下 [計算] 索引標籤,然後再按一下 [1904年日期系統]。然後,按一下 [確定]
  3. 在 Sheet1 中輸入下列日期:
          A1: 7/5/96
          A2: 5/11/96
          A3: 4/28/96
    					
  4. 在 [工具] 功能表上指向 [巨集],然後按一下 [Visual Basic 編輯器]。在 Visual Basic 編輯器] 中,按一下在 [插入] 功能表上的 模組
  5. 下列程式碼輸入模組工作表:
          Sub DateTest()
             'dimension date variable
             Dim dDate As Date
    
             'store minimum date in range into variable
             dDate = Application.Min(Worksheets(1).Range("A1:A3"))
    
             'display stored date
             MsgBox "Stored date" & Chr(13) & dDate
    
             'check for 1904 date system
             If Application.ThisWorkbook.Date1904 Then
    
              'convert 1904 base date to 1900 base date
              dDate = DateSerial(Year(dDate) + 4, Month(dDate), Day(dDate) + 1)
    
              'display converted date
                MsgBox "Converted date" & Chr(13) & dDate
    
             Else
                MsgBox "1904 date system is not enabled"
             End If
          End Sub
    						
  6. 若要執行巨集,指向 [工具] 功能表上的 [巨集],按一下 [巨集]。選取 DateTest],按一下 [執行]。
第一個訊息方塊出現日期 4/27/92,這是四年和一個日期早於最早日期範圍內的儲存格 A1 到 A3。在第二個訊息方塊會顯示正確的轉換"日期 4/28/96 年。

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。

其他相關資訊

Visual Basic 應用程式並不會自動偵測 1904 年日期系統,並將轉換日期作為必要。如果使用者選取 [Microsoft Excel 中的 [1904 年日期系統,而且執行從工作表儲存格讀取日期的巨集,差異可能是 4 年又 1 天 (額外的一天帳戶的 「 閏年)。比方說 9/1/96 英 1904 年日期系統的日期可能會傳回 31 92 的日期。

當您選取 [1904 年日期系統,以及巨集時它會儲存日期,請使用 Value2 屬性時,日期系統不一致可能會發生在 Visual Basic 中。

屬性

文章編號: 213593 - 上次校閱: 2013年10月14日 - 版次: 4.2
這篇文章中的資訊適用於:
  • Microsoft Excel 2000 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbbug kbdtacode kbpending kbprogramming KB213593 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:213593
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com