gpt4 book ai didi

excel - 单击插入按钮时分配给插入按钮的宏不运行

转载 作者:行者123 更新时间:2023-12-04 21:19:29 31 4
gpt4 key购买 nike

我使用以下 VBA 插入一个按钮:

Sub Insert_Button()
Dim Button_01 As Button
Set Button_01 = Sheet1.Buttons.Add(423.75, 0, 48, 15)
Set Range_Button_01 = Sheet1.Range("B1:C5")
Button_01.Name = "Button_01"
With Button_01
.Top = Range_Button_01.Top
.Left = Range_Button_01.Left
.Width = Range_Button_01.Width
.Height = Range_Button_01.Height
.Text = "Button_01"
.OnAction = "Insert_Values"
End With
End Sub

这一切都完美无缺。

如您所见,我分配了一个 VBA .onAction到按钮:
Sub Insert_Values()
Sheet1.Range("A1").Value = 200
End Sub

插入按钮并单击它后,我会收到以下错误消息:
This macro may not be available in this workbook or all macros may be disabled

到目前为止,我已尝试更改 .OnAction像这样的属性(property):
.OnAction = ActiveSheet.Name & ".Insert_Values"
.OnAction ="ThisWorkbook.Insert_Values"

但是,我无法让它工作。
我需要在我的代码中更改什么以便分配的宏运行没有任何问题?

最佳答案

It is defined in "ThisWorkbook"



添加一个新的标准模块,将宏程序移到那里。
ThisWorkbook是一个对象:没有限定符就不能调用它的公共(public)成员。通过将代码移动到标准模块,公共(public)过程可以在任何地方访问而无需限定符。

或者,您可以限定成员(member)通话。如果我手动将宏分配给 ThisWorkbook 中的公共(public)过程然后输出形状的 OnAction属性(property)值(value),我得到这个:
Book1!ThisWorkbook.Test

所以,你很接近!假设不涉及空格,这应该有效:
.OnAction = ThisWorkbook.Name & "!ThisWorkbook.Insert_Values"

如果 ThisWorkbook.Name有空格,您需要将其括在单引号中(未经测试):
.OnAction = "'" & ThisWorkbook.Name & "'!ThisWorkbook.Insert_Values"

关于excel - 单击插入按钮时分配给插入按钮的宏不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807995/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com