2016-08-31 8 views
0

空のセルを1つの列に0で埋める方法は? VBAなしでVBA - 空のセルを0で埋める

Sub test() 

Dim cell As Range 

For Each cell In Range("B2307:B10000") 
If Trim(cell.Value) = "" Then 
    cell.Value = 0 
End If 
Next cell 

End Sub 
+3

これにはVBAが本当に必要ですか? – pnuts

+0

@pnutsまあ、あなたは時々あなたのものを自動化したいと思っています... –

答えて

2

これを試してみてください。私は私のコードが完了したと仮定したが動作しません

Sub test() 

    On Error Resume Next 
    Range("B2307:B10000").SpecialCells(xlCellTypeBlanks) = 0 

End Sub 
+0

私はこの劣った(パフォーマンスの観点から)解決策がアップ投票に値するとは思わない。 Btw。 IsEmpty(cell.Value)も便利で便利な関数です。 :) –

+0

うん、私は知っているが、私はちょうど私が怠惰なOPのコードの変更の最小量を作りたかった:p – newguy

0
Sub test() 
    Dim cell As Range 
    For Each cell In Range("B2307:B10000").Cells 
     If Len(cell.Value) = 0 Then 
      cell.Value = "0" 
     End If 
    Next 
End Sub 
+1

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。 – abarisone

2

Goto Special, Blanks 
type '0' 
Ctrl+Enter 
+0

質問はVBAに関するものでした。 –

+0

「B2307を選択:B10000」から始めたいと思うかもしれませんが、確かに私の好みのアプローチです! – pnuts

5

あなたが本当にここで、このためにVBAを必要とする場合(

Sub test() 

Dim cell As Range 

For Each cell In Range("B2307:B10000") 
If Len(cell.Value) = 0 Then 
    cell.Value = 0 
End If 
Next 

End Sub 
0

この非常に特殊なケース(空のセル)では、Rosettaのソリューションが最もエレガントなソリューションですが、数式を変更することで、より多くの状況に簡単に調整できるため、次のことが最も一般的です。

set rng = Range("B2307:B10000") 
rng.Formula = Application.Evaluate("=IF(ISBLANK(" & rng.Address & "),0," & rng.Address & ")") 

このパターンは覚えておくと便利です!

関連する問題