首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用excel绘制动态图形

用excel绘制动态图形
EN

Stack Overflow用户
提问于 2012-12-19 14:13:55
回答 1查看 387关注 0票数 0

我有以下数据

代码语言:javascript
复制
Name Date      Number_of_apples
-------------------------------
abc  1-1-2012  5
abc  2-1-2012  3
xyz  1-1-2012  4
xyz  2-1-2012  2
xyz  3-1-2012  6

我想在excel中绘制一个表示上述数据的2D线图。

图中X轴应包含Date,Y轴中应包含Number of apples

名称abc的示例绘图:

根据名称的选择,图形应该更新以表示该名称的数据.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 17:25:17

这对我有用。一些注意事项:

  1. 这段代码需要放在Worksheet模块中。
  2. 要更新图表,只需单击name列中的名称,例如“xyz”、“abc”等。
  3. 如果没有图表,它首先创建一个图表,然后以更精确的方式更新相同的图表。

下面是代码:

代码语言:javascript
复制
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        UpdateChart Target
    End If
End Sub

Sub UpdateChart(name As Range)
    Dim startRow As Integer, lastRow As Integer
    Dim namerng As Range, data As Range, applechart As ChartObject

    Set namerng = Range("A1:A" & Range("A1").End(xlDown).Row)

    startRow = WorksheetFunction.Match(name.Value, namerng, 0)
    lastRow = startRow + WorksheetFunction.CountIf(namerng, name.Value) - 1

    On Error Resume Next
    Set applechart = ActiveSheet.ChartObjects("AppleChart")
    Set data = Range("B" & startRow & ":C" & lastRow)

    If Not applechart Is Nothing Then
        applechart.Activate
        ActiveChart.SetSourceData Source:=data
    Else
        ActiveSheet.Shapes.AddChart.Select
        ActiveSheet.ChartObjects(1).name = "AppleChart"
        ActiveChart.ChartType = xlLine
        ActiveChart.SetSourceData Source:=data
    End If
End Sub

编辑:如何在中设置

  1. 在Excel中按ALT + F11。这将打开VBA编辑器。
  2. 在左侧项目窗口中,单击保存数据的工作表,例如Sheet1
  3. 在左手下拉菜单中选择Worksheet
  4. 在右手下拉菜单中选择SelectionChange
  5. 剪切并粘贴代码

注意-我假设您的数据开始于A列。如果不是,您需要自己修改代码中的列引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13954227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档