簡體   English   中英

如何通過Excel中的VBA復制/粘貼已過濾/可見單元格中的公式

[英]How to copy/paste formula in filtered/visible cells via VBA in Excel

我正在努力使用另一列中的過濾器將公式從一列復制並粘貼到另一列中。

我有一個具有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM