[英]excel vba code to run a macro from a cell formula
我有一本工作簿,其中一個工作表充滿了數據,另一個工作表充滿了圖表。 我編寫了一些代碼,這些代碼可以根據用戶在“圖表”工作表的兩個單元格中輸入所需的值,自動同時同時更改每個圖表的圖表比例和單位。 他們需要輸入的值在數據表中,並且它們本身也是相當長的公式。 我想更改“圖表”工作表上的單元格以引用“數據表”上的值,以便在添加新數據且這些單元格發生更改時,圖表自動更新,即無需用戶手動進行操作。 我在這里還讀過其他一些有關使用公式的類似文章,並嘗試過修改代碼,但是它們都與我的情況有所不同,因此我什么也做不了。
下面是我當前使用的代碼,當手動輸入值時,該代碼可以正常工作。 這些值在圖表表的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事件。
一旦將D6
和D7
的像元值設置為等於數據表上的公式值,則每次重新計算數據表中的公式時,這對您都將起作用,從而導致D6
和D7
重新計算。 但是,使用此解決方案時,請記住,只要重新計算數據中的公式,該代碼就會觸發,這可能是不希望的。
注意-最好也要確定您的范圍是指哪張紙。 這就是為什么我加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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.