【发布时间】:2017-02-10 12:15:44
【问题描述】:
在我的工作中,我必须处理 Excel 表格并在时间范围内收集数据。
到目前为止,我使用了以下 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 等等……到 02.01.2017 22:00。
我尝试了几次来编辑这段代码,但每次都失败了。我还尝试删除输入框,以便代码从单元格 B2 和 C2 读取时间范围,并在 A17 中作为输出,但再次没有成功。
我不是程序员,所以我尝试阅读一些有关 VBA 的知识,但我知道需要学习很多东西。
如果有人尝试过或知道如何提供帮助,我将不胜感激。
【问题讨论】: