达到阈值时切割列

问题描述 投票:0回答:1

我在 Excel 中有大约 24000 行,我想将它们拆分以使用 VBA 创建图表。 我的一小部分数据如下所示:

enter image description here

A 列包含时间(每秒 4 个样本)。
B 列包含的值告诉我新周期何时应该开始。
C栏包含最有价值的信息;温度,我终于想将其包含在我的图表中。

每个文件的行数都不同。 现在,我想要的是每当 B 列的值较高 (+-27000) 时进行检测的代码。每当“高峰”结束(B 列中的紫色 500 值)时,应将 C 列剪切并粘贴到下一列中,直到行为空。我的图表只需要 C 列的数据,因此其他信息不必删除。

B 值较高的数据应该是前一列的一部分,如下所示,其中绿色和橙色是两个单独的列:

enter image description here

excel vba loops row
1个回答
0
投票

这里是解决您的任务的 VBA 子例程:

Option Explicit

Sub WrapRows()
  Dim i As Long, j As Long, k As Long, b As Boolean
  Dim Limit As Double
  Limit = 20000
  j = 4: k = 1
  For i = 1 To [B1].End(xlDown).Row
    If Cells(i, 2) >= Limit Then b = True
    If Cells(i, 2) < Limit And b Then
      Cells(k, 3).Resize(i - k, 1).Copy Cells(1, j)
      j = j + 1: k = i: b = False
    End If
  Next
  If i > k Then Cells(k, 3).Resize(i - k, 1).Copy Cells(1, j)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.