Вычесть дату и время из двух NOW

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

  1. При нажатии на флажок 1 СЕЙЧАС захватывается и отображается в текстовом поле 1.
  2. при нажатии на флажок 2 в текстовом поле 3 отображается СЕЙЧАС, а прошедшее время (значение в текстовом поле 3 - значение в текстовом поле 1) должно отображаться в текстовом поле 4 в точном формате часов и минут. Чего я не могу сделать после попытки поиска разных кодов в Google.

Я оставался с VBA и выключался, поэтому я не бегло. Может ли кто-нибудь помочь мне с куском кода?


Dim X1 As Date


Private Sub CheckBox1_Click()

X1 = Now

If CheckBox1.Value = True Then TextBox1.Value = Now
If CheckBox1.Value = False Then TextBox1.Value = Null

If CheckBox1.Value = True Then TextBox2.Value = "00:00"
If CheckBox1.Value = False Then TextBox2.Value = Null


End Sub

Private Sub CheckBox2_Click()

Dim X2 As Date
Dim X3 As Date
Dim X4 As Date

X2 = Now

If CheckBox2.Value = True Then TextBox3.Value = Now
If CheckBox2.Value = False Then TextBox3.Value = Null
If CheckBox2.Value = False Then TextBox4.Value = Null


X3 = X2 - X1
TextBox4.Value = X3

End Sub

person user3883116    schedule 28.07.2014    source источник
comment
Используя приведенный выше код, можно ли создать цикл флажка условия, скажем, если флажок 1 равен True, затем, взяв дату/время с СЕЙЧАС (+ 50 минут n повтор), я хочу, чтобы всплывающее сообщение XYZ с подтверждением в порядке и повторение каждые 50 минут, пока checkbox1 не станет False. Кто-нибудь может помочь? Спасибо.   -  person user3883116    schedule 28.07.2014


Ответы (2)


format the x3 value

измените последнюю строку кода, как показано ниже

TextBox4.Value = Format(X3, "hh:mm:ss")                                  
person Dinesh Niduvani Somanna    schedule 28.07.2014
comment
Прохладно! Это сработало. Большое спасибо Динеш. Принимая значение «Сейчас», есть способ создавать всплывающее сообщение каждые 50 минут с «ОК» в качестве подтверждения. то есть иметь его для создания всплывающего сообщения на основе состояния флажка. Дайте мне знать, если это возможно. Спасибо. - person user3883116; 28.07.2014

Не решая ваш основной запрос, который, кажется, касается форматирования, но вы должны использовать многострочные блоки в IF и использовать Else вместо другого if!

Private Sub CheckBox1_Click()
X1 = Now
If CheckBox1.Value = True Then 
    TextBox1.Value = Now
     ' i dont think u need the following here but put here to show multi line if
     ' keepa  button to reset both text boxes
    TextBox2.Value = "00:00" 
elseif
     TextBox1.Value = Null
end if
 'keep in reset button click
'If CheckBox1.Value = False Then TextBox2.Value = Null
End Sub

ССЫЛКА http://www.techonthenet.com/excel/formulas/if_then.php

person tgkprog    schedule 28.07.2014
comment
Спасибо tgkprog за упрощенную форму :) - person user3883116; 28.07.2014
comment
Почему это Elseif, а не Else? Это может быть только Истина или Ложь - person Dan Donoghue; 11.06.2015