結論

在「適用於」一節中列出的 Microsoft Excel 版本中,可以使用 Visual Basic for Applications 建立傳回自訂計算的使用者定義函數。然而,在由工作表儲存格中的公式呼叫時,使用者定義函數不能執行變更 Microsoft Excel 環境的動作。

其他相關資訊

由工作表儲存格中的公式所呼叫的使用者定義函數不能變更 Microsoft Excel 的環境。這代表此類函數不能執行以下任何操作:

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

  • 變更其他儲存格中的值。

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

  • 變更任何環境選項,例如計算模式或畫面檢視。

  • 新增名稱至活頁簿。

  • 設定屬性或執行大部分的方法。

使用者定義函數旨在允許使用者建立不包括在 Microsoft Excel 隨附函數中的自訂函數。Microsoft Excel 中隨附的函數也不能變更環境。函數可以執行計算以在輸入它們的儲存格中傳回某個值或文字。任何環境變更都應透過使用 Visual Basic 副程式來完成。

計算過程中,Excel 會檢查包含使用者定義函數之儲存格的參考儲存格。如果未計算所有的參考儲存格,Excel 會傳遞 Null 或空的儲存格到函數。然後,Excel 將確保針對要計算的所有參考儲存格進行了足夠的計算傳遞。在進行最後的計算傳遞過程中,會對使用者定義函數傳遞儲存格目前的值。這會導致比預期更頻繁地呼叫使用者定義函數。因此,使用者定義函數可能會傳回意外值。

若要進行正確的計算,計算中使用的所有範圍都應該做為引數傳遞給函數。如果不以引數形式傳遞計算範圍,而是參考函數的 VBA 程式碼中的範圍,Excel 將無法在計算引擎中考慮這些區域。因此,Excel 可能無法對活頁簿進行適當的計算,以確保在計算使用者定義函數之前計算了所有參考儲存格。

参考

《Visual Basic 使用者指南》第 5.0 版,第 4 章<什麼是 Visual Basic 過程>

「編寫使用者定義工作表函數」,Microsoft Excel 7.0 Visual Basic 説明文件。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×