2013-06-27 218 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