【发布时间】:2020-05-23 10:58:38
【问题描述】:
我已经编写了以下代码,但我希望宏重复此过程,将下一行复制到 SS21 主表中,直到该行为空白(表格末尾)。
像这样?
Sub Run_Buysheet()
Sheets("SS21 Master Sheet").Range("A1:AH1, AJ1:AK1, AQ1").Copy Destination:=Sheets("BUYSHEET").Range("A1")
Sheets("SS21 Master Sheet").Range("A2:AH2, AJ2:AK2, AQ2").Copy Destination:=Sheets("BUYSHEET").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Dim r As Range, i As Long, ar
Set r = Worksheets("BUYSHEET").Range("AK999999").End(xlUp) 'Range needs to be column with size list
Do While r.Row > 1
ar = Split(r.Value, "|") '| is the character that separates each size
If UBound(ar) >= 0 Then r.Value = ar(0)
For i = UBound(ar) To 1 Step -1
r.EntireRow.Copy
r.Offset(1).EntireRow.Insert
r.Offset(1).Value = ar(i)
Next
Set r = r.Offset(-1)
Loop
End Sub
SS21 主表
购买表
【问题讨论】:
-
您需要插入一个循环,例如
For x = 2 to lastrow并将Range("A2:AH2, AJ2:AK2, AQ2")替换为Range("Ax:AHx, AJx:AKx, AQx") -
@GMalc - 抱歉,我是 VBA 新手,您能再解释一下吗?
标签: excel vba loops copy-paste offset