【发布时间】:2011-07-26 22:53:54
【问题描述】:
我知道一点 VBA,但我一直在寻找更聪明的方法(你们工作的方式!!)。
这就是我想要做的。我必须处理一些具有
的数据年份 |月 |天 |小时 |分钟 |数据1 |数据2.... |数据N
每个都在一个单独的列中,并且有数千行。 “数据”列的数量由用户在运行时定义(至少 1 和最大 100)。数据可以具有任何时间步长,例如每分钟、5分钟、10分钟、每小时、每天等等。然后用户指定输出数据间隔,该间隔总是大于输入数据间隔。
所以,这个宏应该在用户指定的时间间隔内写入数据。必须将输出时间步之间的每一列中的数据加在一起。见以下两张表:
输入:
Yr Mth Day Hr Min Data_1 Data_2
2010 2 7 8 0 1.01 2.01
2010 2 7 8 5 1.02 2.02
2010 2 7 8 10 1.03 2.03
2010 2 7 8 15 1.04 2.04
2010 2 7 8 20 1.05 2.05
2010 2 7 8 25 1.06 2.06
2010 2 7 8 30 1.07 2.07
2010 2 7 8 35 1.08 2.08
2010 2 7 8 40 1.09 2.09
2010 2 7 8 45 1.10 2.10
2010 2 7 8 50 1.11 2.11
2010 2 7 8 55 1.12 2.12
2010 2 7 9 0 1.13 2.13
2010 2 7 9 5 1.14 2.14
输出:
Yr Mth Day Hr Min Data_1 Data_2
2010 2 7 8 0 1.01 2.01
2010 2 7 8 15 3.09 6.09
2010 2 7 8 30 3.18 6.18
2010 2 7 8 45 3.27 6.27
2010 2 7 9 0 3.36 6.36
因此,输入数据是每 5 分钟一次,输出数据必须是每 15 分钟一次。连续 15 分钟间隔之间的每一行数据必须相加。
我使用两个循环水平和垂直遍历并在每一步将值写入电子表格,所以我让这个东西工作。但是真的很慢。
我们将不胜感激任何加快此过程的帮助。
提前致谢
-MP
** 我用来将处理后的数据写入文本文件的代码:
Open FName For Output Access Write As #FNum
For RowNdx = StartRow To endrow
done = Int((RowNdx / endrow) * 100)
Application.StatusBar = "Exporting *.gag file... (" & done & " % done )"
WholeLine = ""
For colNdx = StartCol To Endcol
If Sheets("Output").Cells(RowNdx, colNdx).Text = "" Then
CellValue = ""
Else
CellValue = Sheets("Output").Cells(RowNdx, colNdx).Text
End If
WholeLine = WholeLine & CellValue & sep
Next colNdx
WholeLine = Left(WholeLine, Len(WholeLine) - Len(sep))
Print #FNum, WholeLine
Next RowNdx
Close #FNum
有没有办法一次将范围写入文本文件。我试图避免循环。
感谢您的帮助
MPD
【问题讨论】: