Почему в массив добавляется полночь вместо даты? - PullRequest
0 голосов
/ 22 октября 2019

Я объявляю массив дат следующим образом:

Dim date_array() as Date

Его цель - сохранить даты, найденные в диапазоне.

Dim date_range As String

Я объявляю это как строку, потому что у меня есть форма ввода, где пользователь указывает диапазон дат (например, A1: A5).

Затем я вычисляю, сколько ячеек вдиапазон и указать размер date_array.

ReDim date_array(Range(date_range).Cells.count)

Пока все хорошо. Затем я перебираю каждый элемент date_array и добавляю дату из диапазона.

Dim i As Long
i = 0
For Each r In ThisWorkbook.Worksheets("Name").Range(date_range)
    date_array(i) = r.Value
    i + i + 1
Next r

Однако, когда я делаю MsgBox (date_array (i)) во время этого цикла, я получаю значение 12:0000:00 вместо даты, которую я хочу (например, 2/2/2019), которая говорит мне, что что-то теряется в переводе.

Я получу правильный результат, если сделаю MsgBox (r.Value) ... так что похоже на то, что я назначаю дату массиву неправильно.

Имееткто-нибудь сталкивался с такой проблемой раньше? Как я могу это исправить?

Большая цель состоит в том, чтобы отобразить данные между двумя файлами с использованием даты + соглашения об именовании в качестве проверки, поэтому мне нужен массив для хранения правильной даты в формате даты, чтобы ее можно былопо сравнению с другим значением ячейки позже.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...