快速更改Excel图表参考
嗨,我是新的网站,有什么我希望是一个简单的解决方案,我不能想出 我有一个工作簿,有10个相同的选项卡,每个选项卡上有不同的数据。我制作了一个新的选项卡,它引用了选项卡1来绘制我拥有的各种数据。我正在查看大约20个图形,现在我想在创建9个新选项卡的同时对其余9个选项卡进行相同的图形分析 我唯一能做的似乎是复制图表,然后更改每个图表中的数据源,这需要几个小时。是否有我遗漏的东西,或者是否有一个宏可以让这更容易快速更改Excel图表参考,excel,excel-2010,vba,Excel,Excel 2010,Vba,嗨,我是新的网站,有什么我希望是一个简单的解决方案,我不能想出 我有一个工作簿,有10个相同的选项卡,每个选项卡上有不同的数据。我制作了一个新的选项卡,它引用了选项卡1来绘制我拥有的各种数据。我正在查看大约20个图形,现在我想在创建9个新选项卡的同时对其余9个选项卡进行相同的图形分析 我唯一能做的似乎是复制图表,然后更改每个图表中的数据源,这需要几个小时。是否有我遗漏的东西,或者是否有一个宏可以让这更容易 非常感谢您的回答。我以前一直忙于动态添加图表。这里有一个稍微修改过的片段,你可以随意处理。
非常感谢您的回答。我以前一直忙于动态添加图表。这里有一个稍微修改过的片段,你可以随意处理。为了简单起见,假设您的范围是当前图纸的A1:B20
Sub AddChart()
Dim ws as worksheet
For each ws in ThisWorkbook.Sheets
'ADD CHART. . .
ws.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=ws.Range("A1:B20")
'this makes the chart a certain size, fitted to a cell range.
Dim RngToCover As Range
Dim ChtOb As ChartObject
Set RngToCover = ws.Range("c4:f8") 'chart will be the size of c4:f8
Set ChtOb = ActiveChart.Parent
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition
'random other stuff I did with labels etc.
ws.Unprotect
ActiveChart.HasLegend = False
ActiveChart.ChartTitle.Text = "Age Statistics"
ActiveChart.SeriesCollection(1).ApplyDataLabels
ws.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowSorting:=True
'go to next worksheet
Next ws
其余9个图表应使用表1中的相同数据,否则它们中的每一个都将在新的表中有其自己的数据范围?我在表1中有20个图表用于数据,该表位于表11中。我有表2-10,需要相同的20个图表,将被放置在表12-20我会这样做,没有VBA。。。选择
Sheet1
和Sheet11
,同时复制9次。每对新人都会保持适当的关系。将当前工作表2-10中的数据复制(或剪切/移动)到新的数据表中。我想你的工作大约需要5分钟。比创建任何宏都快得多:)