【问题标题】:Passing control to button in vba将控制权传递给vba中的按钮
【发布时间】:2017-01-13 09:22:39
【问题描述】:

我在“WBR45”表中有一个子例程(名为 WBR),并且在“主”表中创建了一个按钮。我也为那个按钮分配了宏。

我已经在我的子 WBR 所在的 module1 中添加了以下代码:

Sub Button2_Click()
WBR
End Sub

我想通过按钮运行的子(在模块 1 中):

Sub WBR()

Dim Count1Criteria As Variant
Dim Count3Criteria As Variant
Dim test As Variant
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
End Sub

(PS:代码太大所以我才刚开始)

但是当我点击按钮时,它没有运行或显示任何结果。

【问题讨论】:

  • 您的代码实际上并没有做任何事情,这就是您看不到任何效果的原因。
  • 在“开发”选项卡中单击“设计模式”按钮,然后单击名为“WBR”的按钮:它是否被选中并带有可见的手柄以拉伸它?
  • 是的,我明白了

标签: vba excel


【解决方案1】:

我怀疑您的代码未连接到您认为位于Sub Button2_Click 下的代码,请尝试以下代码“调试”(按下按钮时)

Sub Button2_Click()

MsgBox "Test here" ' <-- to test if you are getting here     
Sheets("WBR45").WBR

End Sub

【讨论】:

  • 试过..不工作...仍然没有结果..要清楚..我有一个有 5 张工作表的工作表...按钮放在“主要”工作表中。代码在“模块1”中
  • 您的意思是 6 张工作簿,对吗?你的 WBR 子是在一个常规模块中吗?不是工作表?可以分享吗?
  • 谢谢,您使用的是什么类型的按钮? Acitve_x 还是 User_Form ?
  • 我认为这与您使用的按钮类型有关,请尝试编辑代码,如果您收到MsgBox,请告诉我?
  • 当我尝试上面的代码时没有发生任何事情。对于按钮的类型,我只是进入“开发者”选项并插入按钮。
【解决方案2】:

您必须在 WBR 子例程示例中插入代码:

Sub WBR()
'do something
End Sub

按钮上的宏应该是这样的

Sub Button2_Click()
WBR
End Sub

【讨论】:

  • 我在上面发布了同样的东西,它不起作用
  • 把两个子放在同一个模块中
【解决方案3】:

您的宏似乎未分配给按钮,您发布的代码看起来正确。右键单击按钮 > 分配宏。然后选择正确的宏。

如果要调试,在代码左侧的灰色条上放置一个红点,这将在宏执行时插入暂停。

(TS中的代码实际上并没有做任何事情,所以可能是代码确实被执行了但你没有注意到任何事情)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多