在Excel 2003图表上使用时,formulaR1C1引用了错误的范围

时间:2015-10-16 05:15:31

标签: excel excel-vba charts range formula vba

当我将一个表单CommandButton添加到工作表并在下面插入以下(代码/宏)时,它完美地工作,而不是一个问题。当我将一个CommandButton添加到一个图表(完全相同的代码 - 没有差异)时,结果是我以前有一个正确答案的所有单元格中的#ref错误。我的问题是:我希望控制图表来更新源数据。

宏很简单......(图表数据只有1列)

Dim mkWb As Workbook
Dim HLDataWs As Worksheet
Dim eRw As Integer
Dim strtRnge As Range, endRnge As Range
Dim fRnge As Range

Set mkWb = Workbooks("Mktday.xls")
Set HLDataWs = mkWb.Worksheets("HLChartData")

'eRw is about 700 in my ws
eRw = HLDataWs.Cells(7, 1).End(xlDown).Row

Set strtRnge = HLDataWs.Cells(8, 14)
Set endRnge = HLDataWs.Cells(eRw, 14)
Set fRnge = HLDataWs.Range(strtRnge, endRnge)

fRnge.FormulaR1C1 = "=R[-1]C + (RC[-12]-RC[-11])"

从工作表按钮,这可以完美地工作,从图表按钮或其他图表控件,它没有。

如果我将语法更改为.Formula它不起作用,FormulaR1C1Local不起作用,。值不起作用。如果我在第一行中设置了正确的公式并向下复制,则可以正常工作。 当我使用FormulaR1C1后检查Excel公式栏时, 代替显示= R [-1] C +(RC [-12] -RC [-11])的单元格 formala bar显示:= R [65] C [-13] +(R [-7] C [231] -R [-7] C [232]) 有什么我想念的吗?我已经尝试使用value属性,列属性,也许还有其他5个。我已经摆弄了Offset()而没有运气。这是一个错误吗?

任何想法都将不胜感激。代码在从工作表中完美运行,在图表中完全没有。很奇怪。

无论如何,谢谢你的期待!

史蒂夫

0 个答案:

没有答案