Simptomai
Kai atliksite programinį keitimą į "Microsoft Excel" darbalapio langelio reikšmę, jūsų nurodyta milisekundė reikšmė suapvalinama iki artimiausio sekundės. Ši problema kyla esant šioms sąlygoms:
-
Keitimas, kurį atliekate, priskiria VBA datos formatą arba varianto datos formatą į langelį.
-
Programinį keitimą atliekate naudodami makrokomandą "Visual Basic for Applications" arba naudodami išorinį automatizavimą klientą.
Ši problema neiškyla, kai keitimas, kurį atliekate, priskiria datos formatą arba laiko formatą langelyje.
Priežastis
Ši problema kyla dėl to, kad "Excel" viduje formatuoja datų eilutes pagal datos ir laiko formatą, nurodytą valdymo skydo elemento regiono ir kalbos parinktys skirtuke regiono parinktys . Ši reikšmė suapvalinama iki artimiausio sekundės. "Excel" priskiria šią reikšmę langeliui, tada perskaičiuoja reikšmę, kad sukurtų naują langelio datos reikšmę.
Sprendimas
Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų būdų.
1 būdas
Datos reikšmę galite konvertuoti į eilutės formatą, kuriame yra sekundės dalis. Šią eilutės reikšmę galima priskirti ir apskaičiuoti kaip datos formatą, kuris išlaiko milisekundes.
2 būdas
Galite naudoti objekto " reikšmė2 " ypatybę, kad išlaikytumėte milisekundes. Pavyzdžiui, galite naudoti šį VBA kodą.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
Jei reikia papildomos informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
182812 Objekto "Reikšmė2" ypatybės aprašas