Подсчитайте, сколько дней прошло с даты ввода пользователя - PullRequest
1 голос
/ 15 февраля 2020

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

Пример: пользователь вводит "15.02.2009" в ячейку (C4) - на следующий день он показывает «1 день / с» и т. Д.

Я искал и пробовал много вещей, но не смог, Я не специалист по Excel или VBA, в любом случае , так что я даже не конечно, если это возможно.

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next   
    If Not Intersect(Target, Range("L:L")) Is Nothing Then
        With ActiveWorkbook.Worksheets("Ended")
            Application.EnableEvents = False
            Target = "Today()" - Target
            Application.EnableEvents = True
        End With
    End If

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

=TODAY()-DATEVALUE("15/2/2020")

1 Ответ

0 голосов
/ 16 февраля 2020

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

Вы были на дорожке записи, просто нужно получить ее, чтобы ввести формула с использованием Target.Formula.

Я часто боролся с использованием дат в формулах Excel. Самый простой способ - использовать числовое значение c даты. Вы можете сделать это, преобразовав дату в Long, используя CLng ().

Полная строка чтения трески

Target.Formula = "=Today() - " & CLng(Target)

Как уже упоминали другие, вы будете писать обратно номер в ячейку, которая будет иметь формат даты после того, как пользователь вводит дату. Например, если я введу 01/02/2020 (дд / мм / гггг - мой локальный формат даты) в ячейку, для него будет установлено значение «Цель» 16/02/2020 - 01/02/2020, что составляет 15 дней, однако ячейка будет иметь 15.01.1900 (даты компьютера начинаются с 01.01.1900), если вы не измените формат ячейки на число. Вы можете сделать это, используя

Target.NumberFormat = "0"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...