2017-01-20 1 views
0

저는 Visual Basic에 익숙하지 않은 채로 빈 셀에 값이 0 인 정수를 채우는 매크로를 만들고 싶습니다. 범위는 그대로입니다 (비어 있지 않은 경우).VBA - 0으로 범위의 빈 셀을 설정하는 방법

Sub FillEmptyCellsWithZeros() 

'this should fill empty cells with a 0 value for the range selected 



Dim cell As Object 
    Dim y As Integer 

    y = 0 
    For Each cell In Selection 
     If y = Empty Then 
     Selection.Value = 0 
     ElseIf y <> Empty Then 
     Selection.Value = ActiveCell.Value 
     End If 
    Next cell 

End Sub 

내가 가장 가능성이 내 루프 코드의이 작품에서 아무것도하지 않는 것을 알고,하지만 난 결과를 얻을 수없는 것,이 코드는 내가 가진 가장 가까운했다 : 내 코드는 현재이입니다.

도움을 주시면 감사하겠습니다.

당신이 조금 넘는 생각을

답변

1

멀리 스콧의 대답에서 무엇을 할 수 없음,하지만이 아닌 루핑 대답에 관심이 있다면, 당신은 뭔가를 시도 할 수 있습니다 like :

Selection.SpecialCells(xlCellTypeBlanks).Value = 0 

불연속 범위가 많은 큰 선택이있는 경우 문제가 발생할 수 있지만 상당히 안정적이어야합니다. 또한

, 당신은 빈을 반환하는 수식 (예를 들어)이있는 경우 :

=IF(E16="","") 

이 너무 (그들은 여전히 ​​코드를 실행 한 후 빈 "표시"됩니다 의미) 그 빈을 고려하지 않을 것이다 당신의 마일리지가 매우 높을 수 있습니다.

+0

specialCells를 사용하지 않아도되는 질문에 null 문자열을 반환하는 수식이있는 셀도 선택됩니까? –

+0

@ScottCraner - 아, 모르겠다 ... 확인 ... – sous2817

+0

수식을 덮어 쓰지 않습니다. 내 대답도 업데이트하도록하겠습니다. – sous2817

1

감사 :

Sub FillEmptyCellsWithZeros() 

'this should fill empty cells with a 0 value for the range selected 



Dim cell As Object 
    Dim y As Integer 

    y = 0 
    For Each cell In Selection 
     If cell = "" Then 
     cell = y 
     End If 
    Next cell 

End Sub 
+0

감사합니다. 이것은 완벽하게 작동했습니다. VBA의 기본 구문과 주요 개체를 배우려고 아직도 시도 중입니다. –

+0

@MikeMirabelli 이것이 도움이 되었다면 답을 클릭하여 올바른 표시로 간주하십시오. –

관련 문제