首页 > 解决方案 > VBA:只有可见的单元格被粘贴

问题描述

我正在尝试从幻灯片中的图表复制后端数据并将其粘贴到 Excel 中。问题是只有可见的列被粘贴。在研究中,我发现虽然复制包括隐藏单元格在内的所有内容确实被复制,但由于某种原因,只能粘贴可见单元格。所以我正在努力寻找一种粘贴所有内容的方法。有一个选项可以在复制之前取消隐藏列,但是因为图表中嵌入的 excel 的任何更改往往会保留,所以尽量避免这种情况。

此外,似乎只有.PasteSpecial Paste:=xlPasteAll适用于 ppt 图表数据。.PasteSpecial Paste:=xlPasteValuesAndNumberFormats ; .PasteSpecial Paste:=xlPasteValues和其他不起作用。

任何帮助深表感谢。

代码:

Dim rng As Excel.Range
Set rng = chtdat.Workbook.Sheets(1).Range("A1:Z17") 'Col C to G is hidden
'Have tried the following: UsedRange, CurrentRegion
 rng.Copy
        
 On Error Resume Next
    chtdat.Workbook.Close , False
 On Error GoTo 0
          
          If QCWbk.Sheets("QC-Sheet").Range("B3") = "" Then
          
             'QCWbk.Sheets("QC-Sheet").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
             'QCWbk.Sheets("QC-Sheet").Range("B2").PasteSpecial Paste:=xlPasteValues
             
             'QCWbk.Sheets("QC-Sheet").Range("B2").PasteSpecial Paste:=xlPasteAll
              QCWbk.Sheets("QC-Sheet").Range("CheckThis").Sort key1:=QCWbk.Sheets("QC-Sheet").Range("B2:B17"), order1:=xlAscending, Header:=xlYes
             
             QCWbk.Save
             QCWbk.Close
             
          Else

标签: excelvbapowerpoint

解决方案


尝试复制方法,它将复制所有值,包括隐藏列,虽然我没有测试不同的工作簿,但它应该可以工作

Sheet1.Range("D5:F5").Copy Sheet1.Range("M2:O2")

如果您只想复制可见单元格,则包括特殊的单元格功能将起作用

Sheet1.Range("D5:F5").SpecialCells(xlCellTypeVisible).Copy  Sheet1.Range("M2:O2")

推荐阅读