Excelの現在のデータ領域ごとに2つの空白行を挿入する必要があります。
理論的には、私のコードは機能し、データの後に挿入する必要がありますが、何度も試した後、データの前に挿入します。
どこで私は間違えましたか?誰かが親切に私を案内してくれますか?ありがとう!
Sub AutoInsert2BlankRows()
Selection.CurrentRegion.Select
SendKeys "^{.}"
SendKeys "^{.}"
SendKeys "~"
ActiveCell.EntireRow.Select
'this chooses the whole row
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
End Sub
これがさらに明確にするための私の写真です。ご覧のとおり、空白行で区切られた3つの異なるcurrentregionがあります。必要なのは、現在の各領域の間に3つの空白行を作成するために、既存の空白行に加えて2つの追加の空白行を挿入することです。(以前に十分に明確でなかった場合はお詫びします。)
これはあなたがやろうとしていることですか?
最初の例
Sub AutoInsert2BlankRows()
' // Set Variables.
Dim Rng As Range
Dim i As Long
' // Target Range.
Set Rng = Range("A2:A10")
' // Reverse looping
For i = Rng.Rows.Count To 2 Step -1
' // Insert two blank rows.
Rng.Rows(i).EntireRow.Insert
Rng.Rows(i).EntireRow.Insert
' // Increment loop
Next i
End Sub
編集
各空白行の後にさらに2つの空白行を追加するには、次のことを試してください。
2番目の例
Sub AutoInsert2BlankRows()
' // Set Variables.
Dim Rng As Range
Dim i As Long
' // Target Range.
Set Rng = Range("A2:A10")
' // Reverse looping
For i = Rng.Rows.Count To 2 Step -1
If Cells(i, 1).Value = 0 Then
' // Insert two blank rows.
Rng.Rows(i).EntireRow.Insert
Rng.Rows(i).EntireRow.Insert
End If
' // Increment loop
Next i
End Sub
3番目の例
Option Explicit
Sub AutoInsert2BlankRows()
' // Set Variables.
Dim Rng As Range
Dim i As Long
' // Target Range.
Set Rng = ActiveSheet.UsedRange
' // Reverse looping
For i = Rng.Rows.Count To 1 Step -1
' // If entire row is empty then
If Application.CountA(Rows(i).EntireRow) = 0 Then
' // Insert blank row
Rows(i).Insert
Rows(i).Insert
End If
Next i
End Sub
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加