Excel VBA:公式对于对象太复杂

Excel VBA:公式对于对象太复杂,vba,button,excel,Vba,Button,Excel,这似乎是一个简单的问题,但它非常令人沮丧。我已经用VBA为一个电子表格编写了两个(相对简单的)宏,我想让它变得非常用户友好 换句话说,我希望所有宏都通过按钮运行。但是,每当我尝试将按钮指定给宏时,都会出现以下错误: 公式太复杂,无法指定给对象 即使我尝试将其分配给空的子例程,也会发生这种情况。它起作用了,但只适用于我编写的第一个宏。一旦我将其他子程序添加到模块中,我就无法再为宏分配新按钮 这是我写的代码: Sub Button1_Click() selName = Range("C2").Va

这似乎是一个简单的问题,但它非常令人沮丧。我已经用VBA为一个电子表格编写了两个(相对简单的)宏,我想让它变得非常用户友好

换句话说,我希望所有宏都通过按钮运行。但是,每当我尝试将按钮指定给宏时,都会出现以下错误:

公式太复杂,无法指定给对象

即使我尝试将其分配给空的子例程,也会发生这种情况。它起作用了,但只适用于我编写的第一个宏。一旦我将其他子程序添加到模块中,我就无法再为宏分配新按钮

这是我写的代码:

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\u单击()
selName=范围(“C2”).值
div=范围(“E2”).值
成本=范围(“F2”)。价值
diff=div-成本
如果差值<0,则
差异=0
如果结束
范围(“G2”)。选择
ActiveCell.FormulaR1C1=diff
x=范围(“A2”)。值+1
工作表(“VIP_模板.PIVOT”)。选择
范围(“J”和x)。选择
ActiveCell.FormulaR1C1=diff
工作表(“计算”)。选择
范围(“F2”)。选择
ActiveCell.ClearContents
端接头

我在模块中有另一个子例程,我认为这可能是导致问题的原因?我认为这是因为当我简单地将粘贴的数据复制到新的工作表中时,我可以为例程指定一个按钮。我不认为这与我的文件路径有任何关系,因为我没有使用任何(我认为)令人不快的字符。

我发现了这个问题。事实证明,我的文件路径中确实有括号(隐藏在其中)。

你能举一些例子吗?Excel文件的路径是什么?确保路径中没有括号。要扩展@RichardMorgan发布的评论,请看这里:很好,谢谢。在我的例子中,当我将excel文件移动到另一个路径(原始路径有些复杂)时,它就可以工作了,即使我把它放回原始位置,它也可以正常工作。