【问题标题】:VBA Compile Error: Invalid Outside ProcedureVBA 编译错误:外部过程无效
【发布时间】:2017-03-26 21:30:05
【问题描述】:

我正在尝试在 Excel 2016 中创建和运行一个非常简单的宏,但我不断收到以下错误消息“编译错误:外部过程无效。

所有宏试图做的是,当我单击一个工作表上的按钮时,宏会移动到另一个工作表,并修改特定列上的过滤器(并从列中删除零)。

我已经录制了宏来执行此操作,但是当我将它分配给一个按钮并尝试运行它时,错误不断出现。

VBA选项卡中显示的代码如下:

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

谁能帮帮我,因为它让我发疯了!

谢谢

【问题讨论】:

  • 您显示的代码与您所说的尝试执行的操作无关,但Sub 之前的End Sub 会导致您的错误。 (End Sub 是子例程的结束,在任何其他代码之前没有任何意义。)

标签: vba excel


【解决方案1】:

半码(或不完整的代码)就像半真半假,难以理解或判断。所以,如果我理解你的问题,这里是(可能的)解决方案。 1.在按钮点击方法上,写换表代码(例如Sheets("books").Select) 2.一旦选择了预期的工作表,只需记录宏即可选择要应用过滤器的列。 3. 然后做剩下的任务。 这些都是简单的步骤。如果仍然没有成功,请恢复。

【讨论】:

    【解决方案2】:

    这就像删除代码中的第一个“End Sub”一样简单。

    w1n5rx 在完成您的代码以执行您所描述的内容时似乎是正确的。

    但也许可以尝试其他选择: 也许尝试活动的 controlx 按钮

    或者试试

    Static Sub Worksheet_SelectionChange(ByVal Target As Range)

    结束子

    【讨论】:

    • 这就像删除第一个“End Sub”一样简单——只要你知道怎么做就很简单。谢谢!!
    • 哈哈太好了。效果很好。请为我们的回复投票。
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多