這是經過測試的,會按照新工作表中所描述的將當前行分成3份,以便原始數據不會被更改。
Sub SplitAds()
Dim thissheet As Worksheet
Set thissheet = ActiveSheet
Sheets.Add
Dim newsheet As Worksheet
Set newsheet = ActiveSheet
'Copy Headers
thissheet.Range("A1").EntireRow.Copy
newsheet.Range("A1").PasteSpecial (xlPasteValues)
Dim newrow As Long
For x = 0 To thissheet.Range("A65535").End(xlUp).Row
If Not thissheet.Range("A2").Offset(x, 0).Value = "" Then
thissheet.Range("A2:C2").Offset(x, 0).Copy
'Copy & Paste A:C
newsheet.Range("A2").Offset(newrow, 0).PasteSpecial (xlPasteValues)
newsheet.Range("A2").Offset(newrow + 1, 0).PasteSpecial (xlPasteValues)
newsheet.Range("A2").Offset(newrow + 2, 0).PasteSpecial (xlPasteValues)
'Set Type
newsheet.Range("L2").Offset(newrow, 0).Value = thissheet.Range("L2").Offset(x, 0).Value
newsheet.Range("L2").Offset(newrow + 1, 0).Value = thissheet.Range("L2").Offset(x, 0).Value
newsheet.Range("L2").Offset(newrow + 2, 0).Value = thissheet.Range("L2").Offset(x, 0).Value
'Set D:J on 2nd
thissheet.Range("D2:J2").Offset(x, 0).Copy
newsheet.Range("D2").Offset(newrow + 1, 0).PasteSpecial (xlPasteValues)
'Set Keyword on 3rd
newsheet.Range("K2").Offset(newrow + 2, 0).Value = thissheet.Range("K2").Offset(x, 0).Value
newrow = newrow + 3
End If
Next
End Sub
我不知道如何使用它。看起來像一個宏?請告訴我如何實施。謝謝! –
這實際上爲每個廣告組創建了9行。此代碼不考慮它需要的空白行。 –
我將其更新爲空白行。原始數據就像「錯誤的方式」表單一樣嗎? – Jonathan