如何通过Excel中的VBA复制/粘贴过滤/可见单元格中的公式

我正在努力复制和粘贴公式从一列到另一列内使用filter。

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

之后我想申请相同的filter在另一列。

很多温暖的感谢提前任何提示! 🙂

这是我的代码:

 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