【问题标题】:How do you use a two dimensional array to plot a graph in VBA Excel?如何使用二维数组在 VBA Excel 中绘制图形?
【发布时间】:2020-04-14 04:54:43
【问题描述】:

我目前正在尝试创建一个动态图形代码,该代码读取 5 个数组并将它们绘制在散点图上。我已经编写了代码并读取了 5 个数组。

我不知道如何应用必须在 Excel 中绘制的数据。我正在一个函数中完成这项任务。这是我目前拥有的:

Function Graph(ByRef int1 As Variant, ByRef int2 As Variant, ByRef int3 As Variant, _
               ByRef int4 As Variant, ByRef int5 As Variant)

Dim c As Chart
Dim srs As Series
Dim xValues As Variant
Dim yValues As Variant

Set c = ActiveChart
'Set srs = cht.SeriesCollection.NewSeries

xValues = Application.Index(int1, 0, 1)
yValues = Application.Index(int1, 0, 2)

With ActiveChart.SeriesCollection
    .xValues = xValues
    .Values = yValues
End With

End Function

我正在尝试使用以前存在的图表。代码需要能够使用当前选择的图表并按指示绘制数据。

如果您需要任何其他信息,请告诉我。

附加信息:我从一个空白图表开始,它将接受数组作为系列信息(这将反过来填充图表)。如果更容易,我可以使用 VBA 创建图表。我试图避免手动编辑系列范围。我试图避免这种情况,因为 Excel 绘制由方程式控制的“空白单元格”。我曾尝试制作具有大系列范围的图表,但 Excel 会绘制所有值的图表。

这甚至考虑了说不绘制空白单元格的复选框。

我有一个读取值并处理主代码的主函数。我要将此宏绑定到电子表格中嵌入的按钮。

【问题讨论】:

  • 旁注:这应该是 Sub 而不是 Function - 你没有返回任何东西。
  • 有一整套关于您到底想要做什么的问题:您是将五个数组作为系列附加到现有数据系列,还是替换现有数据系列?现有数据系列是否已定义为工作表上的单元格区域?如果是这样,您只需将工作表上的数据替换为数组中的数据,图表就会自动更新。即使您要向图表附加其他系列,您也可以将数组数据放入某个工作表范围,然后将这些范围添加到图表中。
  • 您是否打算将此函数用作从工作表单元格调用的 UDF?那是行不通的。
  • 你到底传递了什么?如果传入范围,则可以直接将它们绘制为 X 和 Y 值。

标签: arrays excel vba graph


【解决方案1】:

类似这样的:

With ActiveChart.SeriesCollection.NewSeries
    .xValues = xValues
    .Values = yValues
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2017-03-17
    • 2021-10-13
    • 2015-03-02
    相关资源
    最近更新 更多