不确定为什么我的代码无效。我正在通过空白值“(空白)”过滤表中的列。然后将值“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
答案 0 :(得分: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