簡體   English   中英

Excel-VBA:將可見單元格的格式復制粘貼到可見單元格

[英]Excel-VBA: Copy-Paste formatting of visible cells to visible cells

我希望編寫一個宏來將一個工作表中選擇的僅可見(即非隱藏、未過濾掉)單元格的格式復制到另一張表中選擇的可見單元格中。

我的 VBA 有點生疏,所以如果有人可以幫助我編寫自己編寫的代碼,或者提供一些替代代碼,我將非常感激。

這是我當前的代碼(帶有注釋掉的代碼,以防有人建議我取消注釋該代碼):

Sub Copy_Paste_Visible()



    Set CopyRng = Application.Selection
    CopyRng = CopyRng.SpecialCells(xlCellTypeVisible).Copy' _
        'Destination:=Range("A1").Offset(ColumnOffset:=1)



    Set PasteRng = Application.InputBox("Paste to :", xTitleId, Type:=8)

    PasteRng = PasteRng.SpecialCells(xlCellTypeVisible) '.Copy _
         'Destination:=Range("A11").Offset(ColumnOffset:=1)

    'CopyRng.Copy
    PasteRng.Parent.Activate
    'PasteRng.Activate
    PasteRng.PasteSpecial xlPasteFormats
    Application.CutCopyMode = False

End Sub

有了這個代碼,在線

PasteRng.Parent.Activate

我收到以下錯誤消息:

在此處輸入圖片說明

如果有人能夠提供任何意見,那就太好了。

嘗試這個:

 Public Sub CopyOnlyVisibleCells()

    Dim rangeToCopy     As Range

    Set rangeToCopy = Selection
    rangeToCopy.SpecialCells(xlCellTypeVisible).Copy
    Worksheets(2).Range(rangeToCopy.Address).PasteSpecial xlPasteAll
    Application.CutCopyMode = False

End Sub

它幾乎需要選擇並將可見單元格復制到Worksheets(2)選擇的相同地址。 您可以稍微玩一下它以使其更好地工作。


關於錯誤 - 如果您嘗試激活PasteRng的父范圍,那么您很可能指的是工作表。 因此,這樣的事情應該有效:

Worksheets(PasteRng.Parent.Name).Activate

通常,使用SelectActivate被認為是一種不好的做法 - 如何避免在 Excel VBA 中使用 Select

暫無
暫無

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

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