2017-10-31 16 views
0

This is just a sample I am testing the code in this data.私はsheet2に3つの列を持っています。私は空のセルを削除する必要があります。これは列Bのみで動作する更新されたコードです。スナップショットにvbaを使用してExcelで空のセルを削除する方法

Sub delete() 
    Dim counter As Integer, i As Integer 
    counter = 0 

    For i = 1 To 10 
    If Cells(i, 1).Value <> "" Then 
     Cells(counter + 1, 2).Value = Cells(i, 1).Value 
     counter = counter + 1 

    End If 
Next i 
End Sub 

サンプルスクリーンショット
enter image description here

+0

あなたはサンプルデータのスクリーンショットを共有することはできますか? – Arul

+0

はあまりにも漠然としていません。コードをステップ実行すると 'rows'が実行され、' CountA'関数は期待値を表示しますか? – Luuklag

+0

サンプルをアップロードしました。 @Arul –

答えて

2

あなたが望むすべてが空のセルを削除する場合は、これを試してみて...

Sub DeleteBlankCells() 
Dim rng As Range 
On Error Resume Next 
Set rng = Intersect(ActiveSheet.UsedRange, Range("A:C")) 
rng.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp 
End Sub 
+0

これは素晴らしい@sktneerです。それは働いています –

+0

@RavindraSinghRawatあなたは歓迎です!フィードバックをお寄せいただきありがとうございます。 :) – sktneer

1

は、最もエレガントな解決策を確認することができますが、それは動作します。

Option Explicit 
Sub delete() 
Dim rCells As Range, rCell As Range, sFixCell As String 

Set rCells = Range("A1:A13") 
For Each rCell In rCells 
    If rCell = "" Then 
     sFixCell = rCell.Address 
     Do While rCell.Value = "" 
     rCell.delete Shift:=xlUp 
     Set rCell = Range(sFixCell) 
     Loop 
    End If 
Next rCell 

End Sub 
+0

これは@MortenAnthonsenで動作します –

+0

私は複数の空白のセルを持っている場合、それはそれをシフトしません。一度に1つのセルだけシフトします。 @MortenAnthonsen –

+0

これで修正されるはずです。 @RavindraSinghRawat – MortenAnthonsen

関連する問題