Все, что я пытаюсь сделать, это взять дату, добавить ее к дате, вставить ее в лист и позволить листу запустить формулы на введенную дату. Все ячейки отформатированы как английские даты, но когда я присваиваю значение ячейки с помощью приведенного ниже кода, она думает, что указанная дата в американском формате, хотя она уже в английском формате, и поэтому пытается преобразовать ее в английский формат. Как я могу помешать этому думать по-американски?
Я отказался от всех функций VBA и создал функцию добавления одной к дате, потому что VBA просто доставляла мне головную боль.
Dim D, M, Y As String
Dim S1, S2, NewDay, NewMonth, NewYear As Integer
S1 = InStr(1, StartDate.Value, "/")
S2 = InStr(S1 + 1, StartDate.Value, "/")
Debug.Print (CStr(S1) + " " + CStr(S2))
D = Mid(StartDate.Value, 1, S1 - 1)
M = Mid(StartDate.Value, S1 + 1, S2 - S1 - 1)
Y = Mid(StartDate.Value, S2 + 1)
Debug.Print (D + " " + M + " " + Y)
NewDay = CInt(D) + 1
NewMonth = CInt(M)
NewYear = CInt(Y)
If NewDay > DaysInMonth(M, Y) Then
NewDay = 1
NewMonth = NewMonth + 1
If NewMonth > 12 Then
NewMonth = 1
NewYear = NewYear + 1
End If
End If
StartDate.Value = CStr(NewDay) + "/" + CStr(NewMonth) + "/" + CStr(NewYear)
тогда в другой функции я просто устанавливаю значение ячейки примерно так:
With sheet.Range("A2")
'.. Stuff
.Offset(i, 1) = StartDate.Value