Страницы: 1
RSS
Получить дату на завтра в нестандартном формате даты,
 
Добрый день!

достаточно нетривиальная задача, но тем не менее.

Есть макрос, задачей которого является возвращать дату и время внесения информации в ячейку, e.g.в ячейку А2 вносим цифру, в ячейке В2 макрос пишет время, в С2 дату. Так вот, формат этой даты неформатный. При протягивании этой даты автозаполнение меняет не день (04, 05 и так далее) а год, например
03.03.2022
03.03.2023
03.03.2024
03.03.2025
03.03.2026
03.03.2027
часть дат вносятся вручную. Я все поменял, кроме завтрашнего числа. При попытке руками поменять в ячейке с нестандартной датой она конвертируется в нормальный, датный формат (если в формате ячейки поставить числовое значение, то эксель вернет число).

нужно сделать завтрашнюю дату в неформатной дате.

во вложении пример с неформатным.

Спасибо!
Just keep doing!..
 
Цитата
Tokhtamysh написал:
При протягивании этой даты автозаполнение меняет не день (04, 05 и так далее) а год, например
03.03.2022
03.03.2023
типичное поведение Excel,с текстом
напишете вместо текста даты - при протягивании будут меняться дни
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
типичное поведение Excel,с текстом
Я понимаю.
Я к тому, что у меня весь массив выходит уже вот в таком неформатном формате. мне проще одно поле информации поменять, нежели весь огород городить.
Just keep doing!..
 
Цитата
нужно сделать завтрашнюю дату в неформатной дате
Добавить день
Код
Function PlusDay(cell As String)
Dim temp As Date
   temp = CDate(cell) + 1
   PlusDay = WorksheetFunction.Text(Day(temp), "00") & "." & WorksheetFunction.Text(Month(temp), "00") & "." & Year(temp)
End Function
 
Цитата
Tokhtamysh написал:
мне проще одно поле информации поменять
через сутки
Цитата
Tokhtamysh написал:
Я что-то не удумал ничего толкового
проще - так меняйте, не проще - воспользуйтесь стандартным типом данных "дата" - все станет на свои места
откуда у вас это стремление создавать себе трудности, а потом героически их преодолевать?
бог с ним с вашим стремлением, зачем вы пытаетесь еще кого-то вовлечь в эту веру "героического преодоления" если люди чаще исповедуют "комфортную эксплуатацию седьмого дня"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
только ради прикола
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("b:B")).SpecialCells(xlCellTypeConstants) Is Nothing Then
    If Err = 0 Then
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        For Each CELL In Intersect(Target, Columns("b:B")).SpecialCells(xlCellTypeConstants)
            CELL.Value = Format(CDate(CELL.Offset(-1)) + 1, "'DD.MM.YYYY")
        Next
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End If
End Sub
По вопросам из тем форума, личку не читаю.
 
спасибо больше.
а как запустить этот макрос?
Just keep doing!..
 
Цитата
Tokhtamysh написал:
а как запустить этот макрос?
положить в модуль листа, но нужно увязывать с другими макросами и ручным вводом. Это скорее как пример того как работает. В приложенном файле будет работать при протягивании.
По вопросам из тем форума, личку не читаю.
 
Есть изящное решение перевода именно этого не стандартного формата даты в стандартный.
в соседнюю ячейку, вот такую формулу, ="Ячейка с не стандартной датой"*1 и эксель ее обратно переведет в формат нормальной даты.
Just keep doing!..
Страницы: 1
Наверх