2013-06-27 157 views
2

這看起來像是一個簡單的問題,但它非常令人沮喪。我在VBA中編寫了幾個(相對簡單的)宏,用於我想使用戶非常友好的電子表格。Excel VBA:公式對象過於複雜

換句話說,我希望所有的宏由按鈕來運行。但是,每當我嘗試分配按鈕宏,我得到的錯誤:

Formula is too complex to be assigned to object

發生這種情況甚至當我嘗試將其分配到一個空的子程序。它的工作,但只爲我寫的第一個宏。一旦我將其他子程序添加到模塊中,我就不能再將新按鈕分配給宏。

這是我寫的代碼:

Sub Button1_Click() 

selName = Range("C2").Value 
div = Range("E2").Value 
cost = Range("F2").Value 
diff = div - cost 

If diff < 0 Then 
    diff = 0 
End If 
Range("G2").Select 
ActiveCell.FormulaR1C1 = diff 

x = Range("A2").Value + 1 
Worksheets("VIP_TEMPLATE.PIVOT").Select 
Range("J" & x).Select 
ActiveCell.FormulaR1C1 = diff 

Worksheets("CALCULATE").Select 
Range("F2").Select 
ActiveCell.ClearContents 

End Sub 

我還有一個子程序模塊中,我認爲這可能是導致這個問題?我認爲這是因爲當我簡單地將數據複製粘貼到新的工作表時,我可以爲例程分配一個按鈕。我認爲它與我的文件路徑沒有任何關係,因爲我沒有使用任何(我認爲)有問題的字符。

+1

你能舉一些例子嗎? – chancea

+1

Excel文件的路徑是什麼?確保路徑中沒有括號。 –

+0

延長@RichardMorgan發表的評論,看看這裏:http://www.excelforum.com/excel-programming-vba-macros/340547-and-quot-formula-is-too-complex-to- be-assigned-to-object-and-quot.html – sous2817

回答

1

發現問題!對不起,結果我是一個白癡,實際上在我的文件路徑中有括號(埋在那裏)。謝謝您的幫助!

+0

很好,謝謝。在我的情況下,當我將我的excel文件移動到另一個路徑時(起源路徑有些複雜),它起作用,甚至在沒有問題的情況下工作,儘管我將它放在原點位置。 – Lin