Excel 如何扩展包含在带有宏的图形中的范围

Excel 如何扩展包含在带有宏的图形中的范围,excel,vba,graph,Excel,Vba,Graph,我在A列中有一些数据,我正试图编写一个宏来将数据范围扩展到下一列-B列,这样每次我在下面的列中添加数据时,宏都会扩展边框以将该数据包括在图表中 请参见下图,其中我的图表中仅包含A列- 我需要做什么才能让它也包含下一列-B列 例如: 你觉得怎么样?这对我很有用: Sub ExpandChartSource() Dim ObjChart As Object Dim RngSource As Range Set ObjChart = ActiveShee

我在A列中有一些数据,我正试图编写一个宏来将数据范围扩展到下一列-B列,这样每次我在下面的列中添加数据时,宏都会扩展边框以将该数据包括在图表中

请参见下图,其中我的图表中仅包含A列-

我需要做什么才能让它也包含下一列-B列

例如:

你觉得怎么样?

这对我很有用:

Sub ExpandChartSource()
    
    Dim ObjChart As Object
    Dim RngSource As Range
    
    Set ObjChart = ActiveSheet.ChartObjects(1)
    
    Set RngSource = Range(Split(ObjChart.Chart.SeriesCollection(1).Formula, ",")(2))
    
    Set RngSource = RngSource.Resize(RngSource.Rows.Count, RngSource.Columns.Count + 1)
    
    ObjChart.Chart.SetSourceData Source:=RngSource
    
End Sub
这是一个更具动态性的版本,如果您想无限期地放大数据,该版本非常有用:

Sub ExpandChartSource()
    
    Dim ObjChart As Object
    Dim RngSource As Range
    Dim IntSeries As Integer
    Dim StrAddress As String
    
    Set ObjChart = ActiveSheet.ChartObjects(1)
    
    Set RngSource = Range(Split(ObjChart.Chart.SeriesCollection(1).Formula, ",")(2))
    StrAddress = RngSource.Cells(1, 1).Address
    
    Set RngSource = Range(Split(ObjChart.Chart.SeriesCollection(ObjChart.Chart.SeriesCollection.Count).Formula, ",")(2))
    StrAddress = StrAddress & ":" & RngSource.Cells(RngSource.Rows.Count, 1).Address
    
    Set RngSource = Range(StrAddress)
    
    Set RngSource = RngSource.Resize(RngSource.Rows.Count, RngSource.Columns.Count + 1)
            
    ObjChart.Chart.SetSourceData Source:=RngSource
    
End Sub

它假设第一个系列最左边,而最后一个系列最右边。

尝试将数据放入表格(插入>表格),看看这是否解决了问题。如何手动、通过VBA或公式填充列中的值?这太棒了,谢谢,这正是我想要的。