循环遍历列表并找到某些值VBA

时间:2016-12-28 08:35:22

标签: excel vba excel-vba

我有很长的值列表,每天都会变得越来越长。它包含来自机器的数据,该机器根据按下的按钮分配值,值为-1,0,1,2。

enter image description here

每次机器执行操作时,都会为其分配一个唯一编号。如果按下“test”按钮,则它给出值-1,并将前一操作中的唯一编号分配给该“测试”。这是因为测试不算作操作。示例中的图号331。

我命令根据我想要的数据创建一个报告,格式如下所示。

enter image description here

因此我需要一个VBA代码,它将遍历整个列表(现在约为2000个单元格)并将值移动到新工作表上。

到目前为止,我已尝试将包含我需要的值的区域复制到新工作表中,然后使用此公式移动每个数字。

Worksheets("Sheetname").Cells(NewRow + 2, 2).Value = Range("button").Value

1 个答案:

答案 0 :(得分:1)

我希望我能够理解这个问题。以下代码可能不是最干净但可行的。我假设start-> stop始终具有相同的步数,并且总是以相同的顺序。

Sub test2()

Application.ScreenUpdating = False

For i = 1 To 20000
    For j = 1 To 9
        nextfree = WorksheetFunction.CountA(Range("A:A")) + 1
        If Sheets("sheet1").Range("A" & i).Value = Sheets("sheet2").Cells(1, j).Value Then
            Sheets("sheet2").Cells(nextfree, j).Value = Sheets("sheet1").Range("C" & i).Value
        End If
    Next j
Next i

Application.ScreenUpdating = True

End Sub