Sintomi
Quando si apporta una modifica a livello di codice al valore di una cella in un foglio di lavoro di Microsoft Excel, il valore del millisecondo specificato viene arrotondato al secondo più vicino. Questo problema si verifica quando sono soddisfatte le condizioni seguenti:
-
La modifica apportata assegna il formato di data VBA o il formato di data Variant alla cella.
-
La modifica a livello di codice viene apportata tramite una macro di Visual Basic, Applications per applicazioni o tramite un client di automazione esterno.
Questo problema non si verifica quando la modifica apportata assegna il formato della data o il formato dell'ora alla cella.
Causa
Questo problema si verifica perché Excel formatta internamente le stringhe di data in base al formato di data e ora specificato nella scheda Opzioni internazionali dell'elemento Opzioni internazionali e della lingua nel pannello di controllo. Questo valore viene arrotondato al secondo più vicino. Excel assegna questo valore alla cella e quindi Ricalcola il valore per ottenere un nuovo valore di data per la cella.
Soluzione alternativa
Usare uno dei metodi seguenti per risolvere il problema.
Metodo 1
È possibile convertire il valore di data in un formato stringa che contiene una frazione di secondo. Questo valore di stringa può essere assegnato a e calcolato come formato di data che mantiene i millisecondi.
Metodo 2
Puoi usare la proprietà value2 dell'oggetto Range per mantenere i millisecondi. Ad esempio, puoi usare il codice VBA seguente.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Per altre informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
182812 Descrizione della proprietà Value2 per l'oggetto Range