2016-08-31 8 views
0

빈 셀을 한 열에 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

그래, 내가 알기는하지만 나는 방공호 코드에서 최소한의 변화를 만들고 싶었다. 나는 게으르다 : 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 & ")") 

이 패턴은 매우 유용합니다.

관련 문제