創建重複行的每個元素。當我嘗試運行宏,我上線「用表(」 Sheet5" )語法錯誤。
我是新來的VBA,但我相信我是在正確的軌道上的其他網站上找到this example後。
我的數據
我有一張10k記錄。在K列中,我有一個字段「流派」,其字符串值由「|」表示。一個例子是:
2015 32.985763 150000000 1513528810 124 6/9/15 5562 6.5 2015 137999939.3 Action|Adventure|Science Fiction|Thriller
的類型值是:
Action|Adventure|Science Fiction|Thriller
預期結果
我試圖在做的是分裂的風格細胞中的值「|」 ,併爲每個流派創建一個新行,並將原始行中的值複製到新行中。
以上述數據爲例,我將循環播放4種流派,創建4個新行,並在流派列中將4個值替換爲for循環的1個值,並刪除原始行。其結果是:
2015 32.985763 150000000 1513528810 124 6/9/15 5562 6.5 2015 137999939.3 Action
2015 32.985763 150000000 1513528810 124 6/9/15 5562 6.5 2015 137999939.3 Adventure
2015 32.985763 150000000 1513528810 124 6/9/15 5562 6.5 2015 137999939.3 Science Fiction
2015 32.985763 150000000 1513528810 124 6/9/15 5562 6.5 2015 137999939.3 Thriller
的功能
我已經通過了解中,我發現的例子發生了什麼工作。我相信這是正確的,直到for循環,但我在With Sheets(「Sheet5」)行錯誤。數據在Sheet5上。
Option Explicit
Sub ReorgData()
Dim r As Long, lr As Long, s
Application.ScreenUpdating = False
With Sheets("Sheet5」)
lr = .Cells(Rows.Count, 11).End(xlUp).Row
For r = lr To 2 Step -1
If InStr(.Cells(r, 11), 「|") > 0 Then
s = Split(Trim(.Cells(r, 11)), 「|」)
.Rows(r + 1).Resize(UBound(s)).Insert
.Cells(r + 1, 1).Resize(UBound(s), 11).Value = .Cells(r, 1).Resize(, 11).Value
.Cells(r, 12).Resize(UBound(s) + 1).Value = Application.Transpose(s)
.Cells(r + 1, 13).Resize(UBound(s), 3).Value = .Cells(r, 13).Resize(, 3).Value
End If
Next r
.Columns(12).AutoFit
End With
Application.ScreenUpdating = True
End Sub
變化'」''以「' – YowE3K
這做到了 - !。!謝謝如果你寫的答案,我會接受它太 – Emile
精心佈置的問題埃米爾 – brettdj