Загадка старой даты в Excel. Я ищу совет / помощь по нижеуказанному, пожалуйста!
У меня есть набор дат:
Важно отметить, о эти даты: они выводятся из массива, используя start_date = Format$("01-" & sheet_date, "\ dd\/mm\/yyyy\")
и end_date = Format$(DateSerial(Year(DateValue(sheet_date)), Month(DateValue(sheet_date)) + 1, 0), "\ dd\/mm\/yyyy\")
соответственно.
Причина этого заключается в том, чтобы сохранить формат Великобритании. Если я использую любой другой способ, Vendor Start Dates
по умолчанию для США.
Теперь с выходными датами (как указано выше) я пытаюсь пробежаться по диапазону дат и «обрезать» пространство, удерживая тот же формат. Я говорю «обрезать», потому что простой метод не приводит к желаемому британскому формату, а формат даты - к США.
Теперь для интересной части. Я попробовал пару простых вещей в тестировании, как поддерживать формат в Великобритании, и предложил следующее (тестирование в одной ячейке):
Sub test()
Dim start_date As Date
start_date = ActiveCell.Value
ActiveCell.Value = start_date
End Sub
Это правильно поддерживает формат даты, как показано ниже:
Теперь, когда я запускаю это в For Each
l oop, оно не поддерживает формат Великобритании для некоторая причина. Я использую следующий код:
Sub explicit_date_clean()
Dim date_range As Range, cell As Range
Dim temp_date As Date
With ActiveSheet
'set range
Set date_range = .Range("1:1").Find(What:="**Vendor Start Date", LookAt:=xlWhole).Offset(1, 0).Resize(.UsedRange.Rows.Count, 2)
For Each cell In date_range
temp_date = cell.Value
cell.Value = temp_date
Next cell
End With
End Sub
Это теперь вывод, пропускающий его через For Each
l oop:
Есть идеи по этому поводу?