Lv 6
asked in 電腦與網際網路軟體 · 1 decade ago

VBA 控制同一檔案不同sheet的計算方式(手動/自動)

假設 Excel 多個 sheet 中,每個 sheet 皆有 Rand() 的函數,

而[選項]設定中的[計算方式],控制的是所有 sheet 為[手動]或[自動]運算。

試問:

1. 有無方法使用VBA控制,只讓使用中的sheet為自動,其餘為手動。

or

2. 使用VBA控制checkbox來設定每一sheet可為手動或自動。

較希望能有功能2的設定方式,因為不同sheet可能有連結,若無更新計算,可能會造成一些數值錯誤。

以上~不知有無高手可協助,謝謝!

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    "使用VBA控制checkbox來設定每一sheet可為手動或自動" 方法如下:

    把[選項]設定中的[計算方式設為[手動]運算。

    在 Sheet1上做一個 CheckBox1 , 在 Sheet1 的程式碼中, 貼入底下兩個副程式:

    Private Sub CheckBox1_Click()

    If CheckBox1 Then Me.Calculate

    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)

    If CheckBox1 Then Me.Calculate

    End Sub

    其他 Sheet 也都比照 Sheet1 如此做, 需注意 Checkbox 的名稱,

    每張工作表上第一個做出來的 Checkbox 都叫做 Checkbox1,

    程式碼就如上複製即可, 否則, 需依 Checkbox 的實際名稱修改

    程式碼

    效果:

    工作表內容有更改時, 若 checkbox 在勾選狀態, 則此工作表會重新計算

    勾選 checkbox 時, 此工作表會立即被重新計算一次

    • Login to reply the answers
  • 1 decade ago

    沒看過這種用法

    在vba中設定計算方式的指令是用application

    在這是指應用程式,也就是說,他是對整個excel作設定

    若是要這麼做,可以考慮所有的rand以vba來說不是可以嗎?

    或是用vba下公式,之後複製貼上

    要持續變動的sheet,用程式碼控制下完公式後不貼上值

    不變動的,下完公式後貼上值....

    用個radio或是checkbox來做切換控制囉...

    2008-06-13 08:01:39 補充:

    原來還可以這樣用,真是利害

    • Login to reply the answers
Still have questions? Get your answers by asking now.