[英]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
通常,使用Select
和Activate
被認為是一種不好的做法 - 如何避免在 Excel VBA 中使用 Select
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.