【问题标题】:Mutiple quantaties plotting in a chart in vba excel在 vba excel 的图表中绘制多个数量
【发布时间】:2019-11-20 14:53:30
【问题描述】:

我正在尝试在 excel 中绘制学生的考试表。一条目标线,显示您在测试中以及一直以来可以获得的最大值。然后是学生在每个问题中取得的成绩。图像将在一个图表中包含折线图和条形图。

条形图显示学生在考试中的得分。用蓝色和橙色两种颜色分别代表两个部分的分数。他的表现是为全年绘制的。虚线图表示如果他们得分最高,他们可以达到的学生目标。 我使用以下代码函数绘制一个图表,但是当我尝试包含第二个图表时,它会覆盖第一个图表。

Sub CreateEmbeddedChartUsingShapesAddChart()

Dim myRange As Range

Set myRange = Application.InputBox(Prompt:="Select chart inputs", Type:=8)
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=myRange, PlotBy:=xlColumns

myRange2 = Application.InputBox(Prompt:="Select chart inputs", Type:=8)
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=myRange, PlotBy:=xlColumns

ActiveChart.Location Where:=xlLocationAsNewSheet

End Sub

【问题讨论】:

  • 我认为你需要Add系列,然后将其轴组更改为xlSecondary
  • 我是这方面的新手。那应该怎么看。非常感谢

标签: excel vba charts multiple-columns


【解决方案1】:

应该是这样的:

Sub CreateEmbeddedChartUsingShapesAddChart()

  Dim MyRange1 As Range
  Set MyRange1 = Application.InputBox(Prompt:="Select line chart inputs", Type:=8)

  Dim MyChart As Chart
  Set MyChart = ActiveSheet.Shapes.AddChart(xlLine).Chart
  MyChart.SetSourceData Source:=MyRange1, PlotBy:=xlColumns

  Dim MyRange2 As Range
  Set MyRange2 = Application.InputBox(Prompt:="Select column chart inputs", Type:=8)

  With MyChart.SeriesCollection.NewSeries
    If IsNumeric(MyRange2.Cells(1)) Then
      .Values = MyRange2
    Else
      .Values = MyRange2.Offset(1).Resize(MyRange2.Rows.Count - 1)
      .Name = "=" & MyRange2.Cells(1).Address(, , , True)
    End If
    .ChartType = xlColumnClustered
  End With

End Sub

由于您的程序名称包括“嵌入式”,因此我创建了一个嵌入式图表,而不是您最终得到的独立图表表。

建议:对输入框命令使用更具描述性的提示。此外,如果您使用的是 Excel 2013 或更高版本,请使用 AddChart2,而不是 AddChart。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多