套用到
Excel 2010

摘要

在「應用於」區塊列出的 Microsoft Excel 版本中,你可以使用 Visual Basic for Applications 建立使用者自訂函式,回傳自訂計算。 然而,使用者自訂函式無法執行在工作表儲存格中公式呼叫時,執行改變 Microsoft Excel 環境的動作。

其他相關資訊

由工作表儲存格中的公式呼叫的使用者定義函式無法改變 Microsoft Excel 的環境。 這表示此類函數無法執行以下任何一項:

  • 在試算表中插入、刪除或格式化儲存格。

  • 改變另一個儲存格的數值。

  • 移動、重新命名、刪除或新增工作表到工作簿中。

  • 更改任何環境選項,例如計算模式或螢幕視圖。

  • 在工作簿上加入名字。

  • 設定屬性或執行大多數方法。

使用者自訂函式的目的是讓使用者能建立一個不包含在 Microsoft Excel 內建函式中的自訂函式。 Microsoft Excel 內建的功能也無法改變環境。 函式可以執行計算,將值或文字回傳到輸入的儲存格。 任何環境變更都應透過 Visual Basic 子程式來完成。 在計算過程中,Excel 會檢視包含使用者定義函式的儲存格的先例。 如果計算過程中尚未計算出所有先前案例,Excel 最終會呼叫使用者定義的函式,並將一個 Null 或 Empty 儲存格傳給函式。 Excel 會確保計算次數足夠,讓所有先例都能被計算出來。 在最後一次計算過程中,使用者自訂函式會被傳遞儲存格的當前值。 這可能導致使用者定義的函式被呼叫的頻率高於預期,且參數也出乎意料。 因此,使用者自訂函式可能會回傳意料之外的值。為了正確計算,計算中使用的所有範圍都應以參數形式傳給函數。 如果你沒有將計算範圍當作參數傳遞,而是在函式的 VBA 程式碼中引用這些範圍,Excel 就無法在計算引擎中考慮這些範圍。 因此,Excel 可能無法充分計算工作簿,確保所有先例都已計算完畢,再計算使用者定義函數。

參考

「Visual Basic 使用者指南」版本 5.0,第 4 章,「什麼是 Visual Basic 程序」 「撰寫使用者定義工作表函式」,Microsoft Excel 7.0 Visual Basic 說明檔案。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。