我正在努力在另一列中使用过滤器,将公式从一列复制并粘贴到另一列。
我有一个 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.Copy
和 Range.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/