将值插入到filter后的表列中的单元格中

不知道为什么我的代码不工作。 我通过空白值“(空白)”筛选表格中的列。 然后将值“NA”插入到第一个单元格中,并通过向下拖动填充句柄到列中的最后一个单元格来复制该值。 然后再一次不过滤桌子,这样一切都显示出来了。

但是,当我运行的macros只是复制列标题名称,并将其粘贴到第一个单元格中,而没有其他的东西。

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 

看起来你使用macroslogging器得到这个代码。 虽然macroslogging器是一个很好的方法来看看使用什么对象,它可以产生一些非常awfull代码!

试试这个策略吧

 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