【问题标题】:VBA: Only visible cells are getting pastedVBA:只有可见的单元格被粘贴
【发布时间】:2021-05-13 06:57:48
【问题描述】:

我正在尝试从幻灯片中的图表复制后端数据并将其粘贴到 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

【问题讨论】:

    标签: excel vba powerpoint


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的回复,但我的问题是粘贴时隐藏的列没有被粘贴,尽管文档在复制时说 - 隐藏列确实被复制了。
    • 如果不显示您的数据示例,我真的无法判断您的问题是什么。除非您的 if 函数设置不正确,否则上述 2 公式始终 100% 有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多