
適切な Excel VBA の do ループを適用する方法、またはセルの内容をコピーして各行の次の空のセルのセットを貼り付ける方法について支援が必要です。各行をループすると、次の空のセルのみがコピーされて貼り付けられ、次に次の塗りつぶされたセルの内容をコピーして、各行が塗りつぶされるまで次の空のセルに貼り付けられます。約 5,000 行を含むテーブルにこれを適用する必要があります。支援をいただければ幸いです。元のテーブルと予想されるテーブルの結果は次のようになります。 サンプルテーブル
答え1
以下の方法でうまくいくはずです。以下の方法ではテーブルが値のみで上書きされるので、テーブルに数式が含まれている場合は、値で上書きされると数式が失われることに注意してください。
Sub SuperUserHelp()
Dim TempArray As Variant, x As Long, y As Long
Dim ValueNow As Variant, SheetName As String, TableAddress As String
SheetName = "Sheet1" 'Set your sheet name here
TableAddress = "A1:E5" 'Set your table range here
TempArray = Sheets(SheetName).Range(TableAddress).Value
For x = 1 To UBound(TempArray, 1)
ValueNow = Empty 'new row defaults to
For y = 1 To UBound(TempArray, 2)
If TempArray(x, y) = Empty Then
TempArray(x, y) = ValueNow
Else
ValueNow = TempArray(x, y)
End If
Next y
Next x
Sheets(SheetName).Range(TableAddress).Value = TempArray
End Sub