在我的报告中,我有一个每月更新的图表。它只有一系列的数据,并且每个月都会为该系列添加一个新的点。这是汇总报告的较大代码中的一小部分。我很抱歉,它是多么波涛汹涌。 “XXX”是一个占位符列,以便我可以引用一个动态位置。我通常会将“XXX”中的.Offset
移至工作表的各个位置。VBA按钮,它将数据点添加到图表上的一个系列中?
此部分Autofills
将下一个日期放入占位符左侧的列中。它是我的Graph的X坐标。
Dim Dates As Range
Dim StartDate As Range
Dim EmptyDateCell As Range
Dim LastDateCell As Range
Dim AllDateCells As Range
Set StartDate = ws.Rows("3").Cells.Find("XXX").Offset(0, -3)
Set LastDateCell = ws.Rows("3").Cells.Find("XXX").Offset(0, -2)
Set EmptyDateCell = ws.Rows("3").Cells.Find("XXX").Offset(0, -1)
Set Dates = ws.Range(StartDate.Address & ":" & LastDateCell.Address)
Set AllDateCells = ws.Range(Dates.Address & ":" & EmptyDateCell.Address)
Dates.AutoFill Destination:=AllDateCells
这是我的Y坐标范围。它也被添加到每个月,通过Autofill
。
Dim Averages As Range
Dim StartAverage As Range
Dim EmptyAverageCell As Range
Dim LastAverageCell As Range
Dim AllAverageCells As Range
Set StartAverage = ws.Rows("171").Cells.Find("XXX").Offset(0, -3)
Set LastAverageCell = ws.Rows("171").Cells.Find("XXX").Offset(0, -2)
Set EmptyAverageCell = ws.Rows("171").Cells.Find("XXX").Offset(0, -1)
Set Averages = ws.Range(StartAverage.Address & ":" & LastAverageCell.Address)
Set AllAverageCells = ws.Range(Averages.Address & ":" & EmptyAverageCell.Address)
Averages.AutoFill Destination:=AllAverageCells
这是我的X和Y坐标的动态位置。它设置一个Range
,从单元格到占位符为Offset
的动态单元格。
Dim rng171 As Range
Dim rng188 As Range
Dim xoffset As Range
Set xoffset = ws.Rows("171").Cells.Find("XXX").Offset(-17, 0)
Set rng171 = ws.Range("D171")
Set rng188 = ws.Range("D188")
这是失败代码的一部分。我想补充的X和Y坐标到已经取得的图表,并坐在工作表
Charts("Cpk Average").SeriesCollection("Cpk").Values = ws.Range(rng171.Address & ":" & EmptyAverageCell.Address)
Charts("Cpk Average").SeriesCollection("Cpk").XValues = ws.Range(rng188.Address & ":" & xoffset.Address)
它说script is out of range
。有关如何解决这个问题的任何想法?
有任何问题让我知道。
下面是我的项目的例子。这不是我上面的代码。这只是为了帮助可视化过程。在将数据添加到图形之前,此示例将在代码中的确切位置。看看这个例子的评论。
https://drive.google.com/open?id=0B-Cnpvgoos3caVNJUUgxbVNGeHM
感谢
什么行给出错误? – dbmitch
'Charts(“Cpk Average”)。SeriesCollection(“Cpk”)。Values = ws.Range(rng171.Address&“:”&EmptyAverageCell.Address)' – Keizzerweiss
这意味着“Cpk Average”不是命名图表,如果是,那么Cpk不是该图表中的命名系列。尝试在立即窗口中评估这些部分并查看哪些会引发错误。 –