【发布时间】:2021-03-18 14:28:38
【问题描述】:
我有一个 Excel 表,其中某些行可能包含与其他行相同的数据。我需要一个宏来对该列中的所有值求和并删除所有重复的行,但第一个行除外,它包含其余行的总和。
我尝试了多个版本的代码,产生最接近我需要的结果的代码看起来像这样,但是这个代码包含一个问题是:无限循环。
Sub delet()
Dim b As Integer
Dim y As Worksheet
Dim j As Double
Dim k As Double
Set y = ThisWorkbook.Worksheets("Sheet1")
b = y.Cells(Rows.Count, 2).End(xlUp).Row
For j = 1 To b
For k = j + 1 To b
If Cells(j, 2).Value = Cells(k, 2).Value Then
Cells(j, 3).Value = (Cells(j, 3).Value + Cells(k, 3).Value)
Rows(k).EntireRow.Delete
k = k - 1
ElseIf Cells(j, 2).Value <> Cells(k, 2).Value Then
k = k
End If
Next
Next
End Sub
【问题讨论】:
-
在第一次复制之后,你设置
k = k-1,那不是说j=k 用于下一个循环吗?k = k的意义何在? -
如果两行的值相同,代码将删除最后一行,所以我设置
K=K-1我必须删除K=K