DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 213593 - Ultima modifica: mercoledì 11 ottobre 2006 - Revisione: 4.2

 

Sintomi

Quando si esegue una macro che utilizza una data di una cella del foglio di lavoro, la data restituita dalla macro può essere quattro anni e un giorno precedenti alla data effettiva.

Cause

Una macro restituisce una data, ovvero quattro anni e un giorno precedente quando si seleziona il sistema data 1904 nella scheda calcolo della finestra di dialogo Opzioni e una delle seguenti condizioni è vera:

  • La macro utilizza la proprietà Value2 quando memorizza la data.

    - oppure -

  • Quando si archivia la data, la macro utilizza una funzione nella libreria di applicazione di Microsoft Excel.

Workaround

La macro riportata di seguito determina se il sistema data 1904 è selezionato, converte una data nel sistema di data 1900 e restituisce la data prevista.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Questo include, ma non è limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. Questo articolo si presuppone che conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft possono spiegare la funzionalità di una particolare procedura, ma in nessun sono caso a modificare questi esempi per fornire funzionalità aggiuntive o creare procedure per soddisfare specifiche esigenze.
Per utilizzare la macro, attenersi alla seguente procedura:

  1. Per inserire una nuova cartella di lavoro, scegliere Nuovo dal menu file , fare clic su cartella di lavoro e quindi fare clic su OK .
  2. Dal menu Strumenti , fare clic su Opzioni , fare clic sulla scheda calcolo e quindi fare clic su sistema data 1904 . Quindi, fare clic su OK .
  3. Digitare le date seguenti nel Foglio1:
          A1: 7/5/96
          A2: 5/11/96
          A3: 4/28/96
    					
  4. Scegliere macro dal menu Strumenti , quindi Visual Basic Editor . In Visual Basic Editor, scegliere modulo dal menu Inserisci .
  5. Digitare il seguente codice nel foglio del modulo:
          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. Per eseguire la macro, scegliere macro dal menu Strumenti e fare clic su macro . Selezionare DateTest e scegliere Esegui .
Verrà visualizzata la prima finestra di messaggio con una data 27/4/92, ovvero quattro anni e un giorno precedenti la data nell'intervallo di celle da A1 a A3. La seconda finestra di messaggio Visualizza la data "convertita" corretta di 28/4/96.

Status

Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo.

Informazioni

Per le applicazioni di Visual Basic non automaticamente di rilevare il sistema data 1904 e di convertire la data come necessario. Se un utente seleziona il sistema data 1904 in Microsoft Excel ed esegue una macro che legge una data da una cella del foglio di lavoro, la differenza può essere quattro anni e un giorno (il giorno di un ulteriore account per l'anno bisestile). Ad esempio, una data del 1/9/96 nel sistema data 1904 potrebbe restituire una data 8/31/92.

La differenza di sistema di data può verificarsi in Visual Basic quando si seleziona il sistema data 1904 e la macro utilizza la proprietà Value2 quando memorizza la data.

Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 2000 Standard Edition
Chiavi: 
kbmt kbbug kbdtacode kbpending kbprogramming KB213593 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 213593  (http://support.microsoft.com/kb/213593/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store