空白の行を削除しますが、空白の行は2つ残します。ここに私のコードは、これまでです:すべての空白行を削除しますが、2つの空白行を残します。
Sheets("XYZ").Select
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Do Until blanks.Columns.Count = 2
Loop
End Sub
空白の行を削除しますが、空白の行は2つ残します。ここに私のコードは、これまでです:すべての空白行を削除しますが、2つの空白行を残します。
Sheets("XYZ").Select
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Do Until blanks.Columns.Count = 2
Loop
End Sub
を私はこれを行うには良い方法があるかもしれないと思うが、あなたの質問に応じて、これを試してみてください。
の変化は、私はそれに応じて、3 =の2blanksなぜあなただけのすべての空白行を削除したが、その後最後に2を挿入していない
Dim blankRows As Integer
Dim i As Integer
With Sheets("Sheet1").UsedRange
blankRows = .Columns(1).SpecialCells(xlCellTypeBlanks).Count
For i = 3 To blankRows
Columns(1).Cells.SpecialCells(xlCellTypeBlanks)(1).EntireRow.Delete
Next i
End With
あなたのソリューションをテストしましたか? 'SpecialCells(xlCellTypeBlanks)(n)'は、firtsブランクからn番目の連続したセルを返すべきです。どちらがOPが望んでいたものではない – user3598756
最初の空白はそのまま残されますか? –
申し訳ありませんが、変数 'i'ではなく、' SpecialCells(xlCellTypeBlanks)(1) 'に一定の' 1'インデックスがあります。したがって、実際には常に最初の_left_空白セルがキャッチされます。 '.Columns(1).SpecialCells(xlCellTypeBlanks) 'を使用すると、使用された範囲の最初の列のすべての空白セルが返されます(BTWは、列" A "とは異なる列から始まることがあります)。使用範囲自体のOPが望むものではないかもしれない。 A1。 ".Cells(.Rows.Count、1).End(xlUp))で' .Columns(1) 'を' '最初の"使用された列のみの空白セルをキャッチすると – user3598756
あなたはこの試みることができる:
Sub main()
Dim lastCell As Range
Dim blanksCount As Long
Dim iarea As Long, icell As Long
With Worksheets("XYZ")
With .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeBlanks)
For iarea = .Areas.Count To 1 Step -1
For icell = .Areas(iarea).Count To 1 Step -1
blanksCount = blanksCount + 1
If blanksCount = 2 Then
Set lastCell = .Areas(iarea).Cells(icell).Offset(-1)
Exit For
End If
Next
If Not lastCell Is Nothing Then Exit For
Next
End With
.Range("A1", lastCell).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
を残し? – PartyHatPanda