我对于excel的VBA很有帮助。我有一个产品表,产品可以有多个类别。链接到产品的类别可以包含子类别,它们位于其旁边的列中。如果产品有多个类别,这些类别位于产品下方一行。见图1。基于值移动单元格
我想达到的目标: 我每次执行脚本,需要当前类别是对产品信息的行与它下面的类别进行更换,直到你到达下一个产品。如果没有新的类别可替换,则产品行可以被删除。 (在这个例子中,我需要运行脚本3次)。所以,我最终会落得这样的:
我的代码至今已得到的是:
Sub MoveEmpty()
Dim i as Long, j as Long
Application.ScreenUpdating = False
j = Range("A" & Rows.Count).End(xlUp).Row
For i = j to 3 Step -1
If Range("A" & i) <> "" Then
Range("C" & i -1) = Range("C" & i).Resize(,3)
Range("A" & i).EntireRow.Delete
End If
Next i
End Sub
希望这是有道理的,感谢你的帮忙,
巴特
子类别不要紧? – Ibo
它的确如此。所以在第一个例子中,行C3:C5需要替换B3:B5,E3:E5需要替换D3:D5等。当产品包含类别下方没有行时,产品行可以被删除。 – CMBart
所以如果子类别不同,他们不应该相互覆盖?我的理解是,你想根据产品,类别和子类别制作一个独特的列表,对吗?任何列中的空单元格表示同一列中的第一个高于它们的值? – Ibo