Simptomi
Kad veicat programmatisku maiņu uz vērtību šūnā Microsoft Excel darblapā, norādītā milisekunžu vērtība tiek noapaļota uz tuvāko sekundi. Šī problēma rodas, ja ir spēkā šādi nosacījumi:
-
Veiktās izmaiņas piešķir šūnā VBA datuma formātu vai varianta datuma formātu.
-
Jūs veicat programmatiskas izmaiņas, izmantojot Visual Basic for Applications makro vai izmantojot ārēju automatizācijas klientu.
Šī problēma neparādās, kad veiktās izmaiņas piešķir datuma formātu vai laika formātu šūnai.
Cēlonis
Šī problēma rodas tāpēc, ka Excel iekšēji formatē datuma virknes atbilstoši datuma un laika formātam, kas norādīts cilnes Reģionālās opcijas sadaļā Reģionālās un valodu opcijas , kas atrodas vadības panelī. Šī vērtība tiek noapaļota uz tuvāko sekundi. Programma Excel piešķir šo vērtību šūnai un pēc tam pārrēķina vērtību, lai šūnā izveidotu jaunu datuma vērtību.
Risinājums
Lai novērstu šo problēmu, izmantojiet kādu no tālāk norādītajām metodēm.
1. metode
Datuma vērtību var pārvērst par virknes formātu, kas satur sekundes lielu daļskaitli. Šo virknes vērtību var piešķirt un aprēķināt kā datuma formātu, kas saglabā milisekundes.
2. metode
Varat izmantot diapazona objekta rekvizītu vērtība2 , lai saglabātu milisekundes. Piemēram, varat izmantot šādu VBA kodu.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
182812 Diapazona objekta rekvizīta vērtība2 apraksts