Excel VBA не будет правильно форматировать дату после среза

Я новичок в VBA и в последнее время много читал об этом, хотя столкнулся с небольшой проблемой, на которую не могу найти ответ.

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

В одном из этих столбцов должна быть указана дата окончания выходных, когда отчет был отправлен — дата указана в ячейке (N10) и выглядит следующим образом:

Неделя: 2011 36:02 11 окт - 08 окт 11

Итак, я нарезал эту ячейку и ввел ее в другую ячейку (C14) с помощью этого фрагмента кода:

 Range("C14") = "=Right($N$10, 9)"

Я могу получить часть строки «08 октября 11», но не могу преобразовать ее в формат m/d/yyyy. Это часть кода, которую я использую для форматирования даты:

 Columns("C:C").NumberFormat = "m/d/yyyy"

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

Спасибо


person over    schedule 26.10.2011    source источник


Ответы (1)


Функция Right вернет строку, которую нужно преобразовать в дату. Это можно сделать разными способами, одним из которых может быть использование Valueфункция:

Range("C14") = "=Value(Right($N$10, 9))"

Это даст C14 значение 40824 (см. это для объяснения), но как только вы примените свой NumberFormat, он будет отображаться как 8/10/2011.

person Graham    schedule 26.10.2011