我对 VBA 很陌生,我已经尽我所能进行了搜索,但我仍然找不到答案。我需要编写一个宏,它将根据多个条件插入新行。这些行必须是不超过 5 个的组,并由承运人分隔。但如果一个 Container 是重复的,它会被计为 1 行。
当前的:
Container Carrier
ABC56 Carrier 1
XOS752 Carrier 1
IOW45 Carrier 1
WOFJ74 Carrier 1
NMC85 Carrier 1
DDJD7 Carrier 1
DFF789 Carrier 1
DFF789 Carrier 1
CSGS Carrier 1
GSW132 Carrier 1
WYWI78 Carrier 1
WTS758 Carrier 1
MNV74 Carrier2
ADS78 Carrier2
CTDS45 Carrier2
CTDS45 Carrier2
LHKGL78 Carrier2
XJSS772 Carrier2
XJSHS7 Carrier2
OIJS7 Carrier2
期望:
ABC56 Carrier 1
XOS752 Carrier 1
IOW45 Carrier 1
WOFJ74 Carrier 1
NMC85 Carrier 1
DDJD7 Carrier 1
DFF789 Carrier 1
DFF789 Carrier 1
CSGS Carrier 1
GSW132 Carrier 1
WYWI78 Carrier 1
WTS758 Carrier 1
MNV74 Carrier2
ADS78 Carrier2
CTDS45 Carrier2
CTDS45 Carrier2
LHKGL78 Carrier2
XJSS772 Carrier2
XJSHS7 Carrier2
OIJS7 Carrier2
我会采取任何方向你有!我分别有这两个代码。一个按运营商分隔,一个分隔为 5 行增量。但是,它并没有内置所有逻辑。
分成 5 人一组:
Option Explicit
Sub InsertIT()
Dim x As Integer
x = 1 'Start Row
Do
Range("A" & x, "B" & x).Insert
x = x + 6
Loop
End Sub
按承运人分开:
Sub InsertRowAtChangeInValue()
For lRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row To 2 Step -1
If Cells(lRow, "B") <> Cells(lRow - 1, "B") Then Rows(lRow).EntireRow.Insert
Next lRow
End Sub