excel - 将值插入过滤器后表格列中的单元格

标签 excel copy-paste vba

不知道为什么我的代码不起作用。我正在通过空白值“(空白)”过滤表中的列。然后将值“NA”插入第一个单元格并通过将填充 handle 向下拖动到列中的最后一个单元格来复制该值。然后再次取消过滤表,以便显示所有内容。

但是当我运行宏时,它所做的只是复制列标题名称并将其粘贴到第一个单元格中,仅此而已。

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

最佳答案

看起来您使用宏记录器来获取此代码。虽然宏记录器是查看要使用的对象的好方法,但它可以生成一些非常糟糕的代码!

试试这个策略

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

关于excel - 将值插入过滤器后表格列中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20575791/

相关文章:

python - Excel 加载项未经同意被删除

Javafx 复制表格到 Excel

javascript - 在 JavaScript 中复制粘贴

vba - 使用邮件合并从 Excel 文件生成 Word 文档

vba - 宏使用 serverxmlhttp 请求获取部分响应

excel - 用户定义的类型未在 Excel VBA 的 Outlook.Namespace 上定义?

python - 使用python比较2个excel文件

Excel 按组减去

excel - 为什么 Range.ColumnWidth 的单位与点或厘米不匹配(使用默认单位)

Java:通过延迟删除从 JTree 中剪切项目