【问题标题】:I can't paste pivot table formats to another page我无法将数据透视表格式粘贴到另一个页面
【发布时间】:2019-12-26 23:27:40
【问题描述】:

尝试将 Excel 上的数据透视表从一页复制并粘贴到另一页。 代码有效,但不会粘贴格式。

Sub TestPivotPaste()
Dim wb As Workbook
Dim sh As Worksheet
Dim sh1 As Worksheet
Dim copyrange As Range

Set wb = ActiveWorkbook
Set sh = wb.Worksheets(8)
Set copyrange = sh.Range("A1:Z50")
Set sh1 = wb.Worksheets(9)


copyrange.Copy
sh1.Range("B50").PasteSpecial Paste:=xlPasteValues
sh1.Range("B50").PasteSpecial Paste:=xlPasteFormats
sh1.Range("B50").PasteSpecial Paste:=xlPasteColumnWidths

End Sub

我试着在同一个页面上做

Sub TestPivotPaste()
Dim wb As Workbook
Dim sh As Worksheet
Dim copyrange As Range
Set wb = ActiveWorkbook
Set sh = wb.Worksheets(8)
Set copyrange = sh.Range("A1:Z50")
copyrange.Copy
sh.Range("B50").PasteSpecial Paste:=xlPasteValues
sh.Range("B50").PasteSpecial Paste:=xlPasteFormats
sh.Range("B50").PasteSpecial Paste:=xlPasteColumnWidths
End Sub

它仍然会在没有格式的情况下被复制,我得到了 运行时错误 1004:Range 类的 PasteSpecial 方法失败,罪名是

sh.Range("B50").PasteSpecial Paste:=xlPasteFormats

通过查看此网站上的类似答案,我无法弄清楚问题出在哪里

【问题讨论】:

  • 注释掉On Error Resume Next 并重新运行。您收到错误消息吗?
  • 还可以考虑使用indenter 以获得更一致的缩进。
  • @BigBen 是的,我得到运行时错误 9 - 下标超出范围
  • 你在哪一行得到这个错误?请edit你的问题与错误描述和抛出它的行,谢谢!
  • 如果您添加一个新工作簿,它可能不会有一个与原始sh 同名的工作表,对吧?

标签: vba format pivot-table copy-paste


【解决方案1】:

尝试如下复制整个表格范围(您可能需要更改数据透视表所属的范围):

Sub TestPivotPaste()

Dim wb As Workbook
Dim sh As Worksheet
Dim sh1 As Worksheet
Dim copyrange As Range

Set wb = ActiveWorkbook
Set sh = wb.Worksheets(8)
Set pt = sh.Range("A3").PivotTable
Set sh1 = wb.Worksheets(9)
Set copyrange = pt.TableRange1

copyrange.Copy
sh1.Range("B50").PasteSpecial Paste:=xlPasteValues
sh1.Range("B50").PasteSpecial Paste:=xlPasteFormats
sh1.Range("B50").PasteSpecial Paste:=xlPasteColumnWidths

End Sub

【讨论】:

  • 使用数据透视表对象是我已经探索过的解决方案,但有趣的是,如果我使用 TableRange2(因为我需要复制和粘贴数据透视表的过滤器)它不会粘贴格式。它仅适用于 TableRange1。只有当我可以粘贴过滤器时,我才能使用数据透视表对象
  • 那么您要做的只是复制数据透视表及其所有功能和格式?
  • 我不想要功能,只想要值和格式。如果我无法复制包含值和格式的整个页面,那么我唯一的可能就是复制并粘贴工作表中所有数据透视表的值和格式。
猜你喜欢
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
相关资源
最近更新 更多