[英]Copy and paste rows x times based if x=“cell value”
將行復制x次並粘貼到新工作表中x行數。 然后將Col“S”的單元格值更改為“x中的1”,“x中的2”,“x中的3”......“x的x”。
“Sheet1”Col“S”保存x數值。 使用值將每行中的col“B”復制到“AJ”並粘貼到“sheet3”中。
我已經在“ 基於單元格值復制行X次數 ”的堆棧溢出中找到了一些代碼,但需要在每個添加的行中更改“S”的值。
Sub Sample()
Dim wsI As Worksheet, wsO As Worksheet
Dim lRow_I As Long, lRow_O As Long, i As Long, j As Long
'~~> Set your input and output sheets
Set wsI = ThisWorkbook.Sheets("Sheet1")
Set wsO = ThisWorkbook.Sheets("Sheet3")
'~~> Output row
lRow_O = wsO.Range("B" & wsO.Rows.Count).End(xlUp).Row + 1
With wsI
'~~> Get last row of input sheet
lRow_I = .Range("B" & .Rows.Count).End(xlUp).Row
'~~> Loop through the rows
For i = 2 To lRow_I
'~~> This will loop the number of time required
'~~> i.e the number present in cell S
For j = 1 To Val(Trim(.Range("S" & i).Value))
'~~> This copies
.Rows(i).Copy wsO.Rows(lRow_O)
'~~> Get the next output row
lRow_O = wsO.Range("B" & wsO.Rows.Count).End(xlUp).Row + 1
Next j
Next i
End With
End Sub
我希望第1頁上的每一行都在第3頁上,該行的值為單元格“S”(“S”= 1-15之間的數字)的次數。 然后,每個添加的新行將具有“S”值“1的S”,“2的S”,依此類推到“S的S”。
Sub Sample()
Dim wsI As Worksheet, wsO As Worksheet
Dim lRow_I As Long, lRow_O As Long, i As Long, j As Long
Dim rw As Range, n As Long
Set wsI = ThisWorkbook.Sheets("Sheet1")
Set wsO = ThisWorkbook.Sheets("Sheet3")
lRow_O = wsO.Range("B" & wsO.Rows.Count).End(xlUp).Row + 1
lRow_I = wsI.Range("B" & wsI.Rows.Count).End(xlUp).Row
For i = 2 To lRow_I
Set rw = wsI.Rows(i)
n = Val(Trim(rw.Range("S1").Value))
rw.Copy wsO.Rows(lRow_O).Resize(n) 'makes n copies of the row
'add the "x of n" values
wsO.Cells(lRow_O, "S").Resize(n, 1).Value = Evaluate("=ROW(1:" & n & ") & "" of " & n & """")
'or alternatively / less complex...
for j = 1 to n
wsO.Cells(lRow_O, "S").Offset(j-1, 0).Value = j & " of " & n
next j
lRow_O = lRow_O + n
Next i
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.