单击表格单元格以生成图表

时间:2018-07-14 23:52:01

标签: vba excel-vba

如何通过单击表格单元格Range(“ A2”)来生成图表?

到目前为止,该问题已经解决:

Sub ClickCell()

    Dim my_range    As Range

    Set my_range = Selection
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=my_range
    Range(“A2”).Select

End Sub

1 个答案:

答案 0 :(得分:1)

您没有提供太多细节,但这应该可以让您入门...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ch
    If Target.Address = "$B$2" Then 'if the cell click was B2...
        'deletes all charts on worksheet
        For Each ch In ActiveSheet.ChartObjects
            ch.Delete
        Next ch

        'create new chart using the data at A1:C8
        Range("A1:C8").Select
        ActiveSheet.Shapes.AddChart2(227, xlLineMarkers).Select
        ActiveChart.SetSourceData Source:=Range("Sheet2!$A$1:$C$8")
    End If
End Sub

这是一个工作表级别的模块,因此请确保它在现场: -右键单击工作表的“选项卡”(位于“ B2”的位置),然后单击View Code。 -在此处粘贴代码 -根据需要进行调整。

现在,每次单击B2时,所有现有图表都将被删除,并在其中添加一个新图表。显然,您需要对此进行调整。

我认为您仍然需要考虑一些事项;例如,您的代码使用.Selection作为源数据...,但是您希望代码在.Selection 更改到单个单元格时专门运行。 B2)...