私は、ほとんど11k行のデータセットに対して最初のマクロを実行しようとしています。しかし、私はそれを実行すると、Excelをフリーズして強制終了しなければなりません。無限ループ実行マクロ
私は、各行のセル11に "blue | red | gray | round"という要素が1〜5個入っています。その行のセル11を要素に更新して、その行全体を各要素の新しいシートにコピーします。
この例では、上記の4つの要素で、4つの行(各要素に1つ)が新しいシートに書き込まれます。
Option Explicit
Sub ReorgData2()
Dim i As Long
Dim WrdArray() As String
Dim element As Variant
Application.ScreenUpdating = False
With Sheets("Sheet5")
For i = 1 To Rows.Count
WrdArray() = Split(.Cells(i, 11), "|")
For Each element In WrdArray()
ActiveCell.EntireRow.Copy
Sheets("Sheet6").Paste
Sheets("Sheet6").Cells(i, 11) = element
Next element
Next i
End With
Application.ScreenUpdating = True
End Sub
"123 | 4567 | ABC | DEF"'あなたはSheet6に(かもしれないものは何でも行)アクティブ行をコピーしている4回、 Sheet6のK15を '' 123 "'に、次に '' 4567 "'、 '' abc "'、そして '' def "'に変更します。まず、アクティブな行を一度コピーし、K15を '' def ''に設定しないでください(他のすべての値に最初に設定する必要はありません)。あなたも意図している/シート6のすべての行にアクティブな行をコピーする必要がありますか? (それは潜在的に100万+ 1列のコピーで、K列だけが違っていて、最初の11,000行にしかありません) – YowE3K
大きなポイント - それを変更します – Emile
実際には、シートに 'Paste'を実行しているだけで、シートの' i'行は表示しません。それが動作する場合でも、私はそれが常にSheet6の "アクティブ"行、またはおそらくSheet6の最初の行にペーストすると仮定します。 – YowE3K