使用宏复制基于条件的值

时间:2016-02-24 06:52:21

标签: excel vba copy criteria

我有2列,一列有日期(列A:A,类型为dd / mm / yyyy hh:mm)另一列有参数值(列B:B),在每个日期注册。但并非所有日期都有注册值(在B列中我会有-9999。

我需要的是复制到其他列(比如D:D和E:E),只复制除-9999之外的值和相应日期的单元格。例如:

Example
enter image description here

我的数据系列很长,它可以达到10000或更多行,所以我不能“手动”进行这个选择。我更喜欢宏,而不是数组公式,因为我想选择计算的时刻。

1 个答案:

答案 0 :(得分:3)

此代码应该可以满足您的需求。这会将列B中具有值的所有行复制到列D和E中。'

Sub copyrows()
Dim RowNo, newRowNo As Long

    RowNo = 2
    newRowNo = 2

    With ThisWorkbook.ActiveSheet

      .Cells(1, 4).Value = "Date"
      .Cells(1, 5).Value = "H_Selected"

          Do Until .Cells(RowNo, 1) = ""

             If .Cells(RowNo, 2) <> "-9999" Then
               .Cells(newRowNo, 4) = .Cells(RowNo, 1)
               .Cells(newRowNo, 5) = .Cells(RowNo, 2)
               newRowNo = newRowNo + 1
             End If

          RowNo = RowNo + 1

          Loop

    End With

End Sub