excel vba代码从单元格公式运行macros

我有一个工作簿,其中一个工作表充满数据,另一个工作表充满图表。 我写了一些代码,它可以自动更改每个图表的图表比例和单位,同时根据用户在图表工作表上的两个单元格中input所需的值。 他们需要input的值在数据表上,而且它们本身就是相当冗长的公式。 我想更改图表工作表上的单元格以引用数据表单上的值,以便在添加新数据并更改这些单元格时自动更新图表,即无需用户手动执行该操作。 我已经阅读了其他一些关于使用公式的类似post,并尝试调整代码,但是它们与我的情况有所不同,而且我还没有能够获得任何工作。

下面是我目前使用的代码,当手动input值时工作正常。 这些值在图表工作表的D6和D7中,我希望他们在数据表中的G4和G5中引用公式。 请谁能告诉我什么额外的代码,我需要和它去哪里?

非常感谢!

Private Sub Worksheet_Change(ByVal target As Range) Dim Cht As ChartObject For Each Cht In ActiveSheet.ChartObjects Cht.Chart.Axes(xlValue).MaximumScale = [D6] Cht.Chart.Axes(xlValue).MajorUnit = [D7] Next Cht End Sub 

将您的代码移动到您的Chart 工作表的Worksheet_Calculate事件。

一旦将D6D7的单元格值设置为与数据表中的公式值相同,则每次重新计算数据表中的公式时都会对您有用,从而导致D6D7重新计算。 但是,使用这个解决scheme时,请记住,只要重新计算数据中的公式,这些代码就会触发,这可能不是所期望的。

注 – 最好限定您的范围涉及的表格。 这就是为什么我加了Me. 在范围参考的前面。

 Private Sub Worksheet_Calculate() Dim Cht As ChartObject For Each Cht In ActiveSheet.ChartObjects Cht.Chart.Axes(xlValue).MaximumScale = Me.Range("D6") Cht.Chart.Axes(xlValue).MajorUnit = Me.Range("D7") Next Cht End Sub