vba - 如何在 Excel 中通过 VBA 在筛选/可见单元格中复制/粘贴公式

标签 vba excel excel-2010

我正在努力在另一列中使用过滤器,将公式从一列复制并粘贴到另一列。

我有一个 52 列的表(行数每个月都在变化)。 在 AW 列(#49)中,我应用了过滤器。它仅显示CTD。 应用此过滤器后,我需要将公式从 AH 列复制到 AG 列。当然,我只需要将此应用于过滤/可见单元格。 我编写的代码将此公式复制/粘贴到 AG 列中的所有单元格中(它不考虑 AW 列中的过滤器)。 另一个问题是,当在 AW 列中应用过滤器时,第一个可见行不需要始终是 AH2,但它可以是例如AH15 或其他什么。我想这可以通过一些动态解决方案来避免。不幸的是我不知道该怎么做。

之后我想对其他列中的过滤器应用相同的过滤器。

提前非常感谢您的任何提示! :)

这是我的代码:

Sub ApplyFilterInColumnAW()

Sheets("DATA").Select
ActiveSheet.ListObjects("tb_DATA").Range.AutoFilter Field:=49, Criteria1:="CTD"
Range("AG2").Select  'dynamic solution?
ActiveCell.FormulaR1C1 = "=[@[Service/Log Formula]]" 'header name of column AH

End Sub

最佳答案

Range.CopyRange.Paste 仅适用于可见单元格。在我的示例中,我使用列标题定位列中的单元格。

Sub ApplyFilterInColumnAW()
    Const TagetColumnLabel = "Test"
    Dim tbl As ListObject
    Set tbl = Sheets("DATA").ListObjects("tb_DATA")

    With Sheets("DATA")
        .ListObjects("tb_DATA").Range.AutoFilter Field:=49, Criteria1:="CTD"
        tbl.ListColumns(TagetColumnLabel).DataBodyRange.FormulaR1C1 = "=tb_DATA[[#This Row],[Service/Log Formula]]"
    End With
End Sub

关于vba - 如何在 Excel 中通过 VBA 在筛选/可见单元格中复制/粘贴公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202749/

相关文章:

excel - VBA WinHTTP从受密码保护的https网站下载文件

c# - 如何在excel中创建一个可读的表格? C#

excel - 未找到 getElementById 时捕获错误

vba - 文件夹选择对话框(VBA、Excel 2010)导致文件不可读

excel - 从一系列文档模板生成Word文档(在Excel VBA中)

html - 如何下载文件夹中A列的所有链接?

java - 将工作表添加到现有的 Excel 文件中

Excel 表单控件没有属性

vba - Worksheet_Activate 代码仅在 1 个工作表中无法运行

csv 文件中的 Excel 尾随逗号错误