请将结果按顺序挨着放在Ak列
时间: 2024-04-13 17:29:18 浏览: 80
要将结果按顺序挨着放在 AK 列,你可以稍微修改一下代码。以下是修改后的示例代码:
```vba
Sub CalculateAveragePrecipitation()
Dim lastRow As Long
Dim i As Long
Dim month As Integer
Dim period As Integer
Dim total As Double
Dim count As Integer
Dim destRow As Integer
destRow = 2 ' 目标列 AK 的起始行
lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 获取最后一行的行数
' 遍历每一行数据
For i = 2 To lastRow
month = Cells(i, 2).Value ' 获取月份
period = IIf(Cells(i, 1).Value <= 10, 1, IIf(Cells(i, 1).Value <= 20, 2, 3)) ' 判断周期
' 累加降水量和计数器
total = total + Cells(i, 4).Value
count = count + 1
' 如果当前行的月份与下一行的月份不同,或者已经到达最后一行,则计算平均降水量并写入 AK 列
If i = lastRow Or month <> Cells(i + 1, 2).Value Then
Cells(destRow, 37).Value = total / count ' 计算平均降水量并写入 AK 列
total = 0 ' 重置累加器
count = 0 ' 重置计数器
destRow = destRow + 1 ' 下一行
End If
Next i
End Sub
```
在这个示例代码中,我们添加了一个 `destRow` 变量,用于指示结果写入 AK 列的行数。每当计算完一个周期的平均降水量后,`destRow` 会自增 1,以便将下一个结果写入 AK 列的下一行。你可以将这段代码复制到 VBA 编辑器中,并执行它来实现将结果按顺序挨着放在 AK 列的功能。
阅读全文