试图在VBA中编写循环

时间:2015-06-29 18:35:47

标签: excel vba excel-vba

我目前正在尝试编写一个简短的循环,将收到的项目列表压缩成简明的逐项报告。我扫描收到的每个项目的条形码,然后进入A栏,如果数量超过1,则进入B栏。

以下是我的思考过程,以便删除A列中所有重复的项目并将其总计合并到B中:

  • 计算A栏中的行数,设为' N'

  • 检查B列中的所有单元格,直到' N'并将空白单元格设置为1

  • 比较A1到A2到AN,如果相同组合B值并删除该行(如果A1和A2匹配,且两个B单元格值均为1,则A1保持不变,B1现在具有2,第二行被删除。)

  • 对AN的所有A的值重复循环,直到AN-1。

我知道每次删除行后我都需要减少N,而且我对VBA很新,所以我总是在编写循环时遇到问题。

我可以非常感谢页面上的任何建议或我可以在我的代码中使用的简单结构。

编辑:尝试将表1转换为表2

表1 -----------------------------表2

Column A      Column B    |    Column A     Column B
11233                     |    11233         4
11233          2          |    9987          7
9987                      |    7452          1
11233                     |
9987           6          |
7452                      |

1 个答案:

答案 0 :(得分:1)

Sub Summator()
ActiveSheet.Columns("A:B").Sort Key1:=ActiveSheet.Range("A2"), Order1:=xlAscending, Header:=xlGuess
lastRow = Range("A65000").End(xlUp).Row
For i = 1 To lastRow
    If Cells(i, 2) = "" Then Cells(i, 2) = 1
Next i
For i = lastRow To 2 Step -1
    If Cells(i, 1) = Cells(i - 1, 1) Then
        Cells(i - 1, 2) = Cells(i - 1, 2) + Cells(i, 2)
        Cells(i, 2).EntireRow.Delete
    End If
Next i
End Sub