2013-12-13 4 views
1

내 코드가 작동하지 않는 이유가 확실하지 않습니다. 빈 값 (빈칸)으로 표의 열을 필터링하고 있습니다. 그런 다음 첫 번째 셀에 "NA"값을 삽입하고 채우기 핸들을 열의 마지막 셀까지 아래로 끌어 값을 복사합니다. 그런 다음 테이블을 다시 채워서 모든 것이 보이도록하십시오.필터 다음에 표의 열에있는 셀에 값 삽입

그러나 매크로를 실행하면 열 헤더 이름이 복사되어 첫 번째 셀에 붙여 넣기 만하면됩니다.

Sub InsertNAtoBlanks() 
' 
' InsertNAtoBlanks Macro 
' 
' 
    ActiveSheet.ListObjects("Table6").Range.AutoFilter Field:=11, Criteria1:= _ 
     "=" 
    Range("K4").Select 
    ActiveCell.FormulaR1C1 = "NA" 
    Range("K4").Select 
    Selection.FillDown 
    ActiveSheet.ListObjects("Table6").Range.AutoFilter Field:=11 
    End Sub 

답변

3

매크로 레코더를 사용하여 코드를 생성 한 것처럼 보입니다. 매크로 레코더는 사용할 오브젝트를 확인하는 좋은 방법이지만, 꽤 멋진 코드를 생성 할 수 있습니다!

!이 전략 대신

Sub Demo() 
    Dim lo As ListObject 
    Dim rng As Range 

    Set lo = ActiveSheet.ListObjects("Table6") 
    Set rng = lo.DataBodyRange.Columns(11) 
    rng.SpecialCells(xlBlanks) = "NA" 
End Sub 

을 시도하거나 :(패배 이름

Set rng = lo.ListColumns("YourColumnName").DataBodyRange 
+0

+ 1 열을 참조 –

+0

내가. 유죄 – Ship72

+0

당신에게 크리스 감사했다 예,이 완벽하게 작동 – Ship72

관련 문제