2017-10-12 94 views
1

我遇到了奇怪的问题。我已经命名的范围SomeName命名范围在图表中恢复到正常范围

=OFFSET(Source!$B$29:$C$29,1,0, COUNTIF(Source!$B$30:$B$55, "<>x"),2) 

然后我试图在图表作为图表数据范围:

=Source!SomeName 

据,它工作得很好。但是,当我切换到表单源并返回时,我意识到数据范围回到了正常范围=源!$ B $ 30:$ C $ 33。我想我可以用宏来解决它(比如当有人激活工作表时,每次设置命名范围为图表),但必须有其他方法。 无论如何知道如何使它没有VBA?

回答

0

您无法将整个图表源数据设置为动态范围。它将始终转换为硬编码值。你可以做的和将要工作的是为图表中的每个系列创建命名范围,而不是手动添加它(更多信息请参见this网站)。这样你的图表就会有些动态。但是,通过使用宏来获得你想要的最好的方法。类似于此代码...

Sub Test() 
    Dim CHARTDATA As Range 
    Set CHARTDATA = Range(or your dynamic range) 
    ActiveSheet.ChartObjects("Chart 1").Chart.SetSourceData Source:=CHARTDATA 
End Sub 
+0

谢谢,所以它是功能,而不是一个错误。令人失望的是,不是吗? – MarcinSzaleniec

+0

是的,我之前正在处理这个问题,同时也对这个功能是不可能的感到失望...... –