在我的工作中,我必须处理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'即可。 –