2016-03-02 57 views
1

我想創建一些用戶定義函數,但它們都導致#Value!錯誤。從VBA簡單的用戶定義函數不在Excel 2010中工作

我的宏已啓用。我甚至添加了Application.Volatile(按照某些帖子的建議)。什麼都沒有

這些是我的一些陳述,它們都導致相同的錯誤。 1)

Function Excer1(x) 
    Application.Volatile 
    Excer1(x) = x^2 - 3 
End Function 

2)

Function Excer2(x) 
    Application.Volatile 
    Excer2(x) = Sqr(2 * x^2) + 2 * x 
End Function 

3)

Function Excer3a(x1, x2) 
    Excer3a(x1, x2) = Log(x2/x1) 
End Function 
+0

到底是如何,你打電話給他們? – Rory

+0

在VBE的工具►選項►編輯器屬性頁面中設置**需要變量聲明**將** [選項 顯式](https://msdn.microsoft.com/zh-cn/library/y9341s4f.aspx) **每個新創建的代碼表頂部的聲明。這個 將避免像拼寫錯誤那樣的愚蠢的編碼錯誤,並且影響你在變量 聲明中使用正確的變量類型。在沒有聲明的情況下即時創建的變量都是變體/對象類型。使用** Option Explicit **是被廣泛認爲是「最佳實踐」的 。 – Jeeped

+0

感謝您的建議。 – Linh

回答

2

你回線是不正確的 - 括號和參數不應該包括:

Function Excer1(x) 
    Application.Volatile 
    Excer1 = x^2 - 3 
End Function 

Function Excer2(x) 
    Application.Volatile 
    Excer2 = Sqr(2 * x^2) + 2 * x 
End Function 

Function Excer3a(x1, x2) 
    Excer3a = Log(x2/x1) 
End Function 
+0

謝謝。這解決了我的問題。 – Linh

0

你是非常關閉:

Function Excer1(x) 
    Application.Volatile 
    Excer1 = x^2 - 3 
End Function 
'2) 

Function Excer2(x) 
    Application.Volatile 
    Excer2 = Sqr(2 * x^2) + 2 * x 
End Function 
'3) 

Function Excer3a(x1, x2) 
    Excer3a = Log(x2/x1) 
End Function 
0

已解決。我應該不包括變量(在這種情況下,「X」),其定義函數時:

修正版本:

Function Excer1(x) 
Application.Volatile 
Excer1 = x^2 - 3 
End Function 

Function Excer2(x) 
Application.Volatile 
Excer2 = Sqr(2 * x^2) + 2 * x 
End Function 

Function Excer3a(x1, x2) 
Excer3a = Log(x2/x1) 
End Function 
相關問題