2013-12-13 57 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

相關問題