Simptome
Atunci când efectuați o modificare programatic la valoarea dintr-o celulă dintr-o foaie de lucru Microsoft Excel, valoarea de milisecundă specificată este rotunjită la cea mai apropiată secundă. Această problemă apare atunci când sunt adevărate următoarele condiții:
-
Modificarea pe care o efectuați atribuie formatul de dată VBA sau formatul de dată variantă la celulă.
-
Faceți modificarea programatic utilizând o macrocomandă Visual Basic for Applications sau utilizând un client de automatizare externă.
Această problemă nu se produce atunci când modificarea pe care o efectuați atribuie formatul de dată sau formatul orei în celulă.
Cauză
Această problemă apare deoarece Excel pe plan intern formatează șiruri de date în funcție de formatul de dată și oră specificat pe fila Opțiuni regionale din elementul Opțiuni regionale și lingvistice din panoul de control. Această valoare este rotunjită la cea mai apropiată secundă. Excel atribuie această valoare celulei, apoi recalculează valoarea pentru a genera o nouă valoare de dată pentru celulă.
Soluție de evitare
Utilizați una dintre următoarele metode pentru a rezolva această problemă.
Metoda 1
Puteți efectua conversia valorii datei într-un format de șir care conține o fracțiune de secundă. Această valoare șir poate fi atribuită și calculată ca format de dată care păstrează milisecundele.
Metoda 2
Puteți utiliza proprietatea valoare2 a obiectului interval pentru a păstra milisecundele. De exemplu, puteți utiliza următorul cod VBA.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Pentru informații suplimentare, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
182812 Descrierea proprietății Valoare2 pentru obiectul interval