【发布时间】:2017-02-07 03:29:42
【问题描述】:
我有一个包含多个图表的工作簿。我想创建一个表格,可以在其中轻松找到所有图表,以便我可以快速复制它们,然后将它们粘贴到 PowerPoint 演示文稿中。
我的代码可以很好地复制、粘贴和更改每个图表的大小。当我试图在工作表中组织它们时,麻烦就来了。
问题是代码将它们全部粘贴在一行中。例如,如果我有大量图表,找到一个特定的图表可能会花费太多时间。
我想以这种方式组织所有图表,为每行设置特定数量的图表(例如,每行 2 个图表)。
我尝试将.left 属性用于图表,但它会将所有图表对齐到同一列(请注意,这不是我的意图)。
我也尝试为行引入一个变量,但我无法控制该变量何时应该“跳转”到下一行以粘贴图表。
如果可行,有什么想法吗?
Sub PasteCharts()
Dim wb As Workbook
Dim ws As Worksheet
Dim Cht As Chart
Dim Cht_ob As ChartObject
Set wb = ActiveWorkbook
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
'k is the column number for the address where the chart is to be pasted
k = -1
For Each Cht In wb.Charts
k = k + 1
Cht.Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
Sheets("Gráficos").Select
Cells(2, (k * 10) + 1).Select
ActiveSheet.Paste
Next Cht
'Changes the size of each chart pasted in the specific sheet
For Each Cht_ob In Sheets("Gráficos").ChartObjects
With Cht_ob
.Height = 453.5433070866
.Width = 453.5433070866
End With
Next Cht_ob
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
MsgBox ("All Charts were pasted successfully")
End Sub
【问题讨论】:
-
你所有的原始图表在哪里?在工作簿的多个工作表中?在一张纸上?还是作为图表放置?
-
原来所有图表都作为图表工作表放置,都在同一个工作簿中。
-
您是否尝试过以下解决方案?有什么反馈吗?
-
两种解决方案都非常有效!