2016-08-01 119 views
-1

我有一个问题,准备宏将在工作表中选择3个范围,然后用这些数据创建3张图表的新工作表。我该如何准备? 这是我现在所拥有的,但不起作用:ActiveChart.Location Where:="Inwestycje wykresy"被突出显示,并且出现'Type mismatch'错误。 我还必须包含图表的尺寸和位置吗? 这里是我的代码:excel vba在新工作表中的多个图表

Sub InwestycjeWykresy() 
Range("B3:N5").Select 
Charts.Add 
ActiveChart.ChartType = xlColumnClustered 
ActiveChart.SetSourceData Source:=Sheets("Inwestycje").Range("B3:N5"), PlotBy:=xlRows 
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Inwestycje wykresy" 
With ActiveChart 
    .HasTitle = True 
    .ChartTitle.Characters.Text = "Alerty" 
End With 
Worksheets("Inwestycje").Activate 
Range("B6:N7").Select 
Charts.Add 
ActiveChart.ChartType = xlColumnClustered 
ActiveChart.SetSourceData Source:=Sheets("Inwestycje").Range("B6:N7"), PlotBy:=xlRows 
ActiveChart.Location Where:="Inwestycje wykresy" 
With ActiveChart 
    .HasTitle = True 
    .ChartTitle.Characters.Text = "Eskalacje" 
End With 
Worksheets("Inwestycje").Activate 
Range("B8:N10").Select 
Charts.Add 
ActiveChart.ChartType = xlColumnClustered 
ActiveChart.SetSourceData Source:=Sheets("Inwestycje").Range("B8:N10"), PlotBy:=xlRows 
ActiveChart.Location Where:="Inwestycje wykresy" 
With ActiveChart 
    .HasTitle = True 
    .ChartTitle.Characters.Text = "Nadzor" 
End With 
End Sub 

回答

0

在第二次和第三次如你想添加到你需要做的ActiveChart.Location Where:=xlLocationAsObject, Name:="Inwestycje wykresy"

我还没有尝试过,但this将意味着现有工作表将是正确的语法。


在您进一步的评论围绕定位你需要这样的东西:

With ActiveChart 
    .HasTitle = True 
    .ChartTitle.Characters.Text = "Alerty" 
    With .Parent 
     .Height = 325 
     .Width = 500 
     .Top = 100 
     .Left = 100 
    End With 
End With 
+0

感谢蒂姆,它解决了我的错误!然而,现在我在一张新表中有这3张图表,但他们没有正确定位 - 第一张纸张覆盖整张纸张,另外两张纸张很小并且彼此覆盖。可能我需要包含一些关于它们的大小和位置的信息 – lucass3231

+0

[This](http://peltiertech.com/Excel/ChartsHowTo/ResizeAndMoveAChart.html)详细介绍了实现该目的的最佳方法。 –

+0

我将此添加到每一个图表随着ActiveChart.Parent .HasTitle =真 .ChartTitle.Characters.Text = “Alerty” .Height = 325 '调整 .WIDTH = 500' 调整 .TOP = 100'重新定位 .Left = 100'重新定位 以 – lucass3231

相关问题