循环浏览包含图形的工作表,将两个ChartObjects复制到另一个工作表中



在我的工作簿中,我有多个工作表,每个工作表都包含两张图——我想在这些工作表中循环,将ChartObjects(1(和ChartObjects(2(并排复制到另一张名为"的工作表中;图形";。

为了澄清,包含2个图的工作表被命名为";John"Paul"乔治;以及";Ringo";。我想首先选择纸张"John",将ChartObjects(1(复制到"Graphs"的单元格A3中,然后将ChartObjects;Graphs";,接下来我想选择"Paul",并将ChartObjects(1(复制到"Graphs"的单元格A24中;Graphs";,如"乔治"、"林戈"等

我研究过这个问题,但找不到将两个ChartObjects从一张图纸并排复制到另一张图纸的解决方案,因此我目前使用的代码只是依次选择每张图纸并复制/粘贴图形-我相信有更好的方法,不幸的是,它超出了我有限的VBA技能。

备注

应要求,我更新了我最初的问题,@Harased Dad友好地提供了解决方案。

Sub example()
Const offsetrows = 26 ' numbers of rows to move down between copies
Dim ws As Worksheet
Dim c As ChartObject
Dim target As Worksheet
Set target = Worksheets("graphs") 'sheet to copy to
Dim t As Range
Set t = target.Range("a1") 'first cell to copy to
For Each ws In Worksheets
Select Case ws.Name
Case "graphs"
'skip this sheet
Case Else
For Each c In ws.ChartObjects
c.Copy
t.PasteSpecial xlPasteAll
Set t = t.Offset(offsetrows, 0)
'edited code here===============
If t.column = 1 then     'if it was in A then
set t = t.offset(-offsetrows,4)    Go to D
else
set t = t.offset(0,-4)     'if D then A
end if
'=======================================
Next c
End Select
Next ws
End Sub

最新更新