У меня возникли проблемы с копированием даты из одного файла в другой и сохранением формата (dd/mm/yyyy) при использовании vba. Прямая копия приводит к датам, которые могут быть преобразованы в формат даты в США, который изменяется на mm/dd/yyyy, и те, которые не могут (любая дата с dd> 12) меняются на строку. Я попытался сначала изменить дату на номер, а затем скопировать/вставить (с планом вернуться к дате формата после завершения копирования), но это только изменяет формат для дат с dd < = 12, даты с dd > 12 все еще встречаются как строковый формат. Кроме того, даты, которые успешно меняются на номера, как представляется, меняют формат в формате США, а затем на числовой формат, поэтому я все равно получаю неправильную дату. Странная вещь проходит эти шаги вручную (вне vba) работает отлично, я могу получить все даты в любом формате, который я хочу, и формат США никогда не появляется. Вот код, я использую:Преобразование даты в числовой формат vba
Sheets("Import").Select
PathName = Range("B2").Value
Filename = Range("B3").Value
TabName = Range("B4").Value
ControlFile = ActiveWorkbook.Name
Workbooks.Open Filename:=PathName & Filename
ActiveSheet.Name = TabName
Columns("A:A").Select
Selection.NumberFormat = "0"
Range("A2:A200").Copy Destination:=Workbooks(ControlFile).Sheets("Import").Range("A8:A206")
Любая помощь или предложения для вещей, чтобы попробовать было бы здорово. Cam
Я подозреваю, что с помощью буфера обмена может быть проблемой. Вам нужно сохранить форматирование? – Comintern
no Я могу иметь дело с форматированием, как только вы вставили, но процесс фактически изменит значение (т. Е. В электронной таблице 1 значение даты равно 42501, а после копирования значение даты - 42679 ... – user2301233
Попробуйте 'Книги (ControlFile). Таблицы (« Импорт » ") .Range (" A8: A206 "). Value = Range (« A2: A200 »). Value' – Comintern