iT邦幫忙

0

請教Excel VB 計算時間問題

  • 分享至 

  • xImage

各位IT前輩,我有一個Excel VB 計算時間 問題想請教

我該如何在Excel 用一個VB按鈕,點下會抓取現在的日期跟時間 顯示在儲存格上

並跳出一個InputBox輸入要累加計算的時間(譬如:30分鐘,1小時....等等)

然後在另一個儲存格上顯示結果(包含跨天日期、24小時制)

因為對VB不是很熟悉,麻煩各位IT前輩能給予協助指教 謝謝

你目前做了哪些?你會在工作表中建立一個按鈕嗎?
jasonh iT邦新手 5 級 ‧ 2019-03-13 08:56:22 檢舉
做一個按鈕,指定巨集為 巨集1
試試是否可行
bubee iT邦新手 5 級 ‧ 2019-03-13 11:20:34 檢舉
基本的操作我知道一些,指令跟邏輯處理我比較不熟
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
jasonh
iT邦新手 5 級 ‧ 2019-03-13 08:49:00

Sub 巨集1()
T1 = Now
Range("C2:C3").NumberFormatLocal = "yyyy/mm/dd hh:mm:ss;@"
Range("C2") = T1
TimeDadd = InputBox("請輸入要增加的時間(日)", , 0)
If TimeDadd = "" Then TimeDadd = 0
TimeHadd = InputBox("請輸入要增加的時間(時)", , 0)
If TimeHadd = "" Then TimeHadd = 0
TimeHadd = TimeHadd / 24
TimeMadd = InputBox("請輸入要增加的時間(分)", , 0)
If TimeMadd = "" Then TimeMadd = 0
TimeMadd = TimeMadd / 24 / 60
TimeSadd = InputBox("請輸入要增加的時間(秒)", , 0)
If TimeSadd = "" Then TimeSadd = 0
TimeSadd = TimeSadd / 24 / 60 / 60
Range("C3") = T1 + TimeDadd + TimeHadd + TimeMadd + TimeSadd
Range("C3").Select
End Sub

小改一下將輸入資料放C4
Sub 巨集1()
T1 = Now
InputData = ""
Range("C4").ClearContents
Range("C2:C3").NumberFormatLocal = "yyyy/mm/dd hh:mm:ss;@"
Range("C2") = T1
TimeDadd = InputBox("請輸入要增加的時間(日)", , 0)
If TimeDadd = "" Then TimeDadd = 0
If TimeDadd > 0 Then InputData = InputData & TimeDadd & " 日 "
TimeHadd = InputBox("請輸入要增加的時間(時)", , 0)
If TimeHadd = "" Then TimeHadd = 0
If TimeHadd > 0 Then InputData = InputData & TimeHadd & " 時 "
TimeHadd = TimeHadd / 24
TimeMadd = InputBox("請輸入要增加的時間(分)", , 0)
If TimeMadd = "" Then TimeMadd = 0
If TimeMadd > 0 Then InputData = InputData & TimeMadd & " 分 "
TimeMadd = TimeMadd / 24 / 60
TimeSadd = InputBox("請輸入要增加的時間(秒)", , 0)
If TimeSadd = "" Then TimeSadd = 0
If TimeSadd > 0 Then InputData = InputData & TimeSadd & " 秒 "
TimeSadd = TimeSadd / 24 / 60 / 60
Range("C3") = T1 + TimeDadd + TimeHadd + TimeMadd + TimeSadd
If Range("C2").Value = Range("C3").Value Then
Range("C4") = "輸入資料均為 0 "
Else
Range("C4") = "輸入資料為 " & InputData
End If
Range("C3").Select
End Sub

看更多先前的回應...收起先前的回應...
bubee iT邦新手 5 級 ‧ 2019-03-13 11:31:13 檢舉

真的太感謝了這符合我的需求

我這邊還有個問題想問

在我輸入完"日時分秒"後

我想另外在儲存格上顯示我剛剛輸入的"日時分秒"

能否再麻煩你 謝謝

bubee iT邦新手 5 級 ‧ 2019-03-13 17:46:57 檢舉

來杯拿鐵
加上後顯示如下
https://ithelp.ithome.com.tw/upload/images/20190313/20115855DYdf9m52Pm.jpg
我想應該是因為有時分制計算的原因
能否請協助修正 謝謝

Sub 按鈕1_Click()
T1 = Now
Range("B2:C2").NumberFormatLocal = "yyyy/mm/dd hh:mm;@"
Range("B2") = T1
TimeHadd = InputBox("輸入(時)", , 0)
Range("D2") = TimeHadd & TimeMadd
If TimeHadd = "" Then TimeHadd = 0
TimeHadd = TimeHadd / 24
TimeMadd = InputBox("輸入(分)", , 0)
If TimeMadd = "" Then TimeMadd = 0
TimeMadd = TimeMadd / 24 / 60
Range("D2") = TimeHadd & TimeMadd
Range("C2") = T1 + TimeHadd + TimeMadd
Range("C2").Select
End Sub

一開始以為jasonh大是用秒當單位
重新看一遍好像是用日為單位
下面這段請放在第二個"D2"位置

Range("D2") = TimeHadd*24 &"時"& TimeMadd*24*60&"分"
bubee iT邦新手 5 級 ‧ 2019-03-15 13:11:19 檢舉

感謝jasonh及來杯拿鐵前輩

予以指教 謝謝

記得給jasonh大最佳解答

我要發表回答

立即登入回答