在我的工作中,我必須處理Excel表格並在時間範圍之間收集數據。如何在Excel中的兩個給定日期之間每隔2小時列出所有日期
到目前爲止我用下面的VBA代碼:
Sub WriteDates()
'Updateby20150305
Dim rng As Range
Dim StartRng As Range
Dim EndRng As Range
Dim OutRng As Range
Dim StartValue As Variant
Dim EndValue As Variant
xTitleId = "KutoolsforExcel"
Set StartRng = Application.Selection
Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type: = 8)
Set EndRng = Application.InputBox("End Range (single cell):", xTitleId, Type: = 8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type: = 8)
Set OutRng = OutRng.Range("A1")
StartValue = StartRng.Range("A1").Value
EndValue = EndRng.Range("A1").Value
If EndValue - StartValue <= 0 Then
Exit Sub
End If
ColIndex = 0
For i = StartValue To EndValue
OutRng.Offset(ColIndex, 0) = i
ColIndex = ColIndex + 1
Next
End Sub
但這個代碼只允許列出整天而不是小時。
例如,如果我輸入的日期範圍在01.01.2017和03.01.2017之間=>到列出的01.01.2017 02:00,然後01.01.2017 04:00依此類推......到2017年1月1日22:00 。
我試了幾次來編輯這段代碼,但我每次都把它弄壞了。我還嘗試刪除Inputboxes,以便從單元格B2和C2中讀取時間範圍的代碼,並在A17中作爲輸出,但仍然沒有成功。
我不是程序員,所以我嘗試閱讀一下VBA,但我明白這是需要學習很多。
如果有人已經嘗試過或知道如何提供幫助,我將非常感激。
是否有可能只用細胞替換輸入框E.I.開始日期爲C1,結束日期爲C2時間間隔爲C3,輸出數據爲A2開始。以前我有這樣的事情,但沒有成功嘗試: '全球StartRng爲Variant 全球EndRng爲Variant 全球OutRng爲Variant StartRng =表(工作表Sheet1).Range( 「C1」)值 EndRng =表(工作表Sheet1。 ).Range(「C2」)。值 OutRng =表(Sheet1).Range(「A2」)。Value' – RHG
是的,當然。只需將'Application.InputBox'語句替換爲你想要的任何'Range'即可。 –