Симптоми
Когато създавате програмна промяна на стойността в клетка в работен лист на Microsoft Excel, зададената от вас стойност за милисекунди се закръглява до най-близката секунда. Този проблем възниква, когато са изпълнени следните условия:
-
Промените, които правите, присвояват формата на дата на VBA или формата на дата за вариант на клетката.
-
Можете да направите програмната промяна с помощта на макрос на Visual Basic for Applications или чрез клиент за външна автоматизация.
Този проблем не възниква, когато промените, които правите, присвояват формата на дата или часа на клетката.
Причина
Този проблем възниква, тъй като форматът за вътрешен формат на Excel показва низовете за дата и час, които са зададени в раздела Регионални опции на регионални и езикови опции в контролния панел. Тази стойност се закръглява до най-близката секунда. Excel присвоява тази стойност на клетката и след това преизчислява стойността, за да произведе нова стойност за дати за клетката.
Заобиколно решение
Използвайте един от методите по-долу, за да заобиколите този проблем.
Метод 1
Можете да преобразувате стойността на датата във формат на низ, който съдържа част от секундата. Тази стойност на низ може да бъде присвоена и изчислена като формат на дата, която запазва милисекунди.
Метод 2
Можете да използвате свойството стойност2 на обекта диапазон, за да запазите милисекундите. Например можете да използвате следния VBA код.
Sub CopyValueUsingVBDate() Dim d As Date d = ActiveSheet.Range("A1").Value ActiveSheet.Range("B1").Value2 = dEnd Sub
За допълнителна информация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
182812 Описание на свойството Стойност2 за обекта диапазон