2017-03-16 8 views
1

空のセルをすべて0に置き換えようとしています。これまでのところ私のコードは間違っていました。0の範囲の空白のセルを置換する

 range("A1:O1").Select 
     range(Selection, Selection.End(xlDown)).Select 
     If range("A1:O1").Value = "" Then 
     range("A1:O1").Value = 0 
     End If 

答えて

2

ループ使用します。Cocoberry2526 @

Sub marine() 
    Dim r As Range, rr As Range 

    Set r = Range("A1:O1") 
    Set r = Range(r, r.End(xlDown)) 

    For Each rr In r 
     If rr.Value = "" Then rr.Value = 0 
    Next rr 
End Sub 
+0

これは完璧にあなたの助けに感謝しました! – Cocoberry2526

2

あなたはRangeオブジェクトのSpecialCells()メソッドを使用することができます。

if worksheetfunction.CountBlank(range("A1:O1"))>0 then range("A1:O1").specialcells(xlCellTypeBlanks).Value=0 

または

With Range("A1:O1") 
    if worksheetfunction.CountBlank(.Cells) >0 Then .SpecialCells(xlCellTypeBlanks).Value=0 
End With 
+0

を、あなたは私のコードのいずれかを試してみたのですか? – user3598756

2

あなたの問題は、条件が真であるために、すべてのセルを空白にする必要があるということです。代わりに、範囲を定義してその範囲のすべての要素にループすることができます。

Sub tmp() 
Dim r As Range, cell As Range 

Set r = Range(Range("A1:O1"), Range("A1").End(xlDown)) 
For Each cell In r 
    If cell.Value = "" Then cell.Value = 0 
Next cell 

End Sub 
+0

このソリューションも上記と同じように機能し、どちらも非常に役に立ちました。ありがとうございました!! – Cocoberry2526

関連する問題