制作带有可变数据起始列的图表

问题描述 投票:0回答:1

我是VBA新手,我需要你的帮助。 我正在尝试根据范围(按月的数据系列,我需要当前和前 2 个月的数据图表)中的列中特定文本的 FIND 来制作具有动态范围的图表。这个想法是宏找到当前月份广告的列,并使用它和前两列作为图表数据。但是,我无法获取前两个月的数据 - 图表无法正确创建。

这是我的代码:

Sub Chart()
    '
    ' Chart Macro
    '
        Dim ra As Range
        Dim SC As Range
        Dim EC As Range
     
    
    Set ra = Cells.Find(What:="March-2024", LookIn:=xlFormulas, LookAt _
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False)
        
    Set SC = ra.Offset(0, -3)
    Set EC = ra.Offset(1, 0)
    
        If ra Is Nothing Then
            MsgBox ("Not found")
        Else
 
        ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
        ActiveChart.SetSourceData Source:=Range("Charts!$B$1:$B$2,SC:EC")


    End If
End Sub

问题显然是带有 SC:EC 的部分不被接受为范围。 它应该找到图表的起始单元格和数据范围,将其设置为向后 3 列和下方 1 行,但它不起作用...... 你能告诉我我的错误在哪里吗?

提前谢谢您

excel vba dynamic excel-charts
1个回答
0
投票

要为

Range
对象定义多个不连续的范围,范围的字符串必须以逗号分隔,并且 2 个范围对象
Address
属性要使用如下所示的内容:

Range("Charts!$B$1:$B$2," & "Charts!" & SC.address & ":" & EC.address)

© www.soinside.com 2019 - 2024. All rights reserved.