2016-06-29 6 views
1

一部のスプレッドシートデータをクリーンアップしようとしています。そのため、列10の数値が0のすべての行を削除する以下のコードがあります。コードはすべての行を削除します。Excel VBA-削除列データがゼロの行数

私のコードで何が間違っているのかを誰でも強調できますか?

Sub Format() 

Dim Fund As Long 
Dim TotalLoop As Long 

RowCount = Range("A65536").End(xlUp).Row 
For TotalLoop = RowCount To 2 Step -1 
Fund = Cells(TotalLoop, 10) 
If Fund = 0 Then 
Rows(TotalLoop).Delete 
Cells(TotalLoop - 1, 10) = Fund 
End If 
Next TotalLoop 

End Sub 
+0

注意セルは空です。あなたがそれを望まないのであれば、 'Cells(TotalLoop、10)= 0 And Cells(TotalLoop、10)<> '''または 'Cells(TotalLoop、10)=" 0 "'(私は最初のものを使います) 。 – arcadeprecinct

答えて

1

次の行を削除してコードを実行してください。それはあなたのコードでは

Cells(TotalLoop - 1, 10) = Fund 
+0

チックシンボル –

0

に動作します、あなたはコードを実行するためにはゼロであるファンドの値の隣に削除されなかった行の値を変更しています。ラインCells(TotalLoop - 1, 10) = Fundを削除し、あなたのループは、必要に応じて機能します

0

サブフォーマット()チェック `細胞(TotalLoop、10)= 0 'も場合にtrueを返すこと

Dim sh As Worksheet 
Dim Fund As Long 
Dim TotalLoop As Long 
Set sh = ThisWorkbook.Sheets("Sheet1") 
RowCount = sh.Range("A1", sh.Range("A1").End(xlDown)).Rows.Count 


For TotalLoop = RowCount To 2 Step -1 
Fund = Cells(TotalLoop, 10) 
If Fund = 0 Then 
Rows(TotalLoop).Delete 
End If 
Next TotalLoop 

End Subの

+0

ありがとうございました。その行の削除は助けになりました –

関連する問題