到目前为止,我非常感谢我收到的帮助,它确实很有用。正如前一篇文章中所述,我正在开展一个大学项目,处理每天收集的大量流级数据,并在.csv中看起来像这样:
ID Year DD Apr May Jun Jul Aug Sep Oct
08HB089 2000 1 3.25 3.83 2.34 1.05 0.273 0.092 0.045
08HB089 2000 2 5.18 3.3 2.6 1.09 0.225 0.081 0.04
08HB089 2000 3 5.5 3.33 2.92 0.93 0.186 0.054 0.036
08HB089 2000 4 4.98 2.53 3.33 0.804 0.153 0.041 0.033
等等另外400行。到目前为止我所做的是创建一个执行以下操作的脚本:
见下面的代码:
Sub StatMakersub(Rng1 As Range)
Dim MyRange As Range
Dim Cell As Object
Dim InQuestion As Range
Dim SelAvg As Variant
Dim SelSD As Variant
Dim L As Integer
Dim Year As Integer
For L = 2 To 17
Year = 2000
For Each Cell In Rng1
If Cell.Value = Year Then
If MyRange Is Nothing Then
Set MyRange = Range(Cell.Address)
Else
Set MyRange = Union(MyRange, Range(Cell.Address))
MyRange.Select
With ThisWorkbook.Worksheets("08HB089_daily_Flow_Tab")
Selection.Offset(0, 2).Select
Set InQuestion = Selection
SelAvg = Application.WorksheetFunction.Average(InQuestion)
Range(L, 15).Value = SelAvg
SelSD = Application.WorksheetFunction.StDev(InQuestion)
Range(L, 16).Value = SelSD
Year = Year + 1
End Sub
如果你不能告诉我,我在编码方面很陌生。我现在要做的是为函数添加循环功能,所以我不必手动完成所有操作。正如您所看到的,我已尝试使用上面的for循环,但我一直遇到语法错误。如果有人可以帮我弄清楚如何添加搜索特定年份的循环功能,找到数据,并将其统计数据计算到一个单元格(比如L2),然后在下一年(2001年)进行下一步,并将这些数据放入在下一个单元格(L3)中的统计数据,我将非常感激。
答案 0 :(得分:0)
要直接回答您的问题,您需要使用“next”命令标记要循环的代码的结尾。在这种情况下,您应该使用“Next L”
那就是说,除非您只是将其作为学习VBA的项目,否则我认为您可以从数据透视表中获得所需的所有功能。简而言之,通过数据透视表,您可以操作可以通过多个不同列进行不同分组的数据。我会说更多,但是有很多很好的教程可以教你比我更好。