将图表的源数据设置为等于变量

时间:2017-11-15 12:03:03

标签: vba excel-vba excel

对于任何有兴趣的人,这对我来说都适用。我认为我之前遇到的问题是我使用的是.select,这导致了问题

Public Sub updateChart()

'搜索今天的日期并选择过去12个月的所有内容

Dim month
Dim year
Dim stringToFind
Dim newRange
Dim foundString
Dim newRange1
Dim newrange2

'为月份和年份分配值

month = VBA.DateTime.month(Date)
year = VBA.DateTime.year(Date)

'搜索等于月+年变量的字符串

stringToFind = month & "/" & year

'声明您将查找月份和年份的范围

Set newRange = Worksheets("Sheet1").Range("C16:Z16")

'搜索月份和年份

Set foundString = newRange.Find(stringToFind)

'找到正确的日期后,将范围调整为新的数据源 - 必须分两个阶段执行此操作,因为无法在调整大小时使用 - 编号

Set newRange1 = foundString.Offset(0, -12)

Set newrange2 = newRange1.Resize(2, 12)

'使用新数据源更新图表

Worksheets("Sheet2").ChartObjects("chartName").Chart.SetSourceData 
Source:=newrange2


End Sub

Public Sub updateChart()

' Searches for today's date and selects everything for the last 12 months

Dim rgFound As Range
Dim month
Dim year
Dim stringToFind
Dim newRange
Dim newRange1
Dim newRange2

month = VBA.DateTime.month(Date)
year = VBA.DateTime.year(Date)

stringToFind = month & "/" & year


Worksheets("Sheet1").Activate

Set rgFound = Worksheets("Sheet1").Range("C16:z17").Find(stringToFind)

Set newRange = rgFound.Offset(0, -12)

Set newRange1 = newRange.Resize(2, 12)

newRange1现在在第16行中保存了一系列日期(正如文本所以我的发现有效)和第17行中的相应值

Charts("Chart1").SetSourceData Source:=newRange1

我正在尝试将源数据设置为chart1的newRange1,但它返回一个错误:下标超出范围。该图表与存储在newRange1中的信息位于不同的表格中。我不确定如何将newRange1设置为chart1的新源数据 - 非常感谢任何帮助!

End Sub

0 个答案:

没有答案