Data restituito in una macro Ŕ anno troppo prima

Traduzione articoli Traduzione articoli
Identificativo articolo: 157035 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

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 "sistema data 1904" scheda Calcolo della finestra di dialogo Opzioni, mentre 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, selezionare cartella di lavoro e quindi fare clic su OK.
  2. Dal menu Strumenti, fare clic su Opzioni, fare clic sulla scheda calcolo e quindi scegliere "sistema data 1904." Quindi, fare clic su OK.
  3. Nel Foglio1, digitare le date seguenti:
    A1: 7/5/96
    A2: 11/5/96
    A3: 28/4/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 fare clic su 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 si tratta un problema con i prodotti 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.

La proprietÓ Value2 Ŕ una nuova proprietÓ in Visual Basic che Ŕ possibile utilizzare in Microsoft Office 97. La proprietÓ Value2 variabili vengono memorizzate nello stesso modo come la proprietÓ Value, ad eccezione del fatto nel che in cui non utilizza i tipi di dati valuta o Data.

ProprietÓ

Identificativo articolo: 157035 - Ultima modifica: venerdý 7 febbraio 2014 - Revisione: 2.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Chiavi:á
kbnosurvey kbarchive kbmt kbdtacode kbprb kbprogramming KB157035 KbMtit
Traduzione 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: 157035
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.

Invia suggerimenti

 

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