我是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 行,但它不起作用...... 你能告诉我我的错误在哪里吗?
提前谢谢您
要为
Range
对象定义多个不连续的范围,范围的字符串必须以逗号分隔,并且 2 个范围对象 Address
属性要使用如下所示的内容:
Range("Charts!$B$1:$B$2," & "Charts!" & SC.address & ":" & EC.address)