从两个NOW中减去日期和时间

时间:2014-07-28 05:53:33

标签: vba excel-vba datetime subtraction excel

我正在尝试创建一个VBA代码,用于计算单击某个操作复选框后的已用时间。

  1. 点击复选框1现在捕获并显示在textbox1中。
  2. 单击复选框2时,NOW将显示在textbox3中,并且经过的时间(textbox3中的值 - textbox1中的值)需要以小时和分钟格式准确显示在textbox4中。在尝试和使用Google搜索不同的代码后,我无法做到这一点。
  3. 我和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
    

2 个答案:

答案 0 :(得分:0)

format the x3 value

更改最后一个代码行,如下所示

TextBox4.Value = Format(X3, "hh:mm:ss")                                  

答案 1 :(得分:0)

没有解决您的主要查询,这似乎与格式有关,但您应该在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

REF http://www.techonthenet.com/excel/formulas/if_then.php