【问题标题】:How do I programmatically create a button and assign a macro to it upon opening spreadsheet?如何在打开电子表格时以编程方式创建按钮并为其分配宏?
【发布时间】:2017-01-10 16:48:13
【问题描述】:

我需要在打开电子表格时生成一个按钮并自动分配我之前创建的宏。我们称这个宏为“edit_colour”。

我知道如何使用以下命令执行带有“Hello World”的 MsgBox,

Private Sub Workbook_Open()
MsgBox "Hello World"
End Sub

【问题讨论】:

  • 您希望按钮显示在工作表、功能区或快速功能区上?老实说,使用 XLSTART 加载加载项并将宏分配给快速/功能区按钮可能更简单。
  • @Cyril 确实是,显示在工作表上,而不是功能区或快速访问工具栏(我应该更具体)。不幸的是,我不能只将它添加到功能区或快速访问工具栏,因为它需要上传到某个地方,一旦下载它就会删除这些按钮。宏也特定于每个电子表格,所以我不能只用一个充满各种不同宏的功能区,因此我不得不求助于 VBA
  • 你试过用批处理文件下载吗?并不是说 VBA 不能工作,但可能有更简单的方法。另一种选择是创建一个特定于该宏的文件以在初始化时执行,而不是使用按钮。
  • “包括您尝试过的内容”将包括至少与您尝试做的事情远程相关的内容。那个“hello world”sn-p 是边缘拖钓 - 你的问题太宽泛,并且缺乏基础研究。
  • ...或者只在问题右侧的“相关”下查看

标签: excel vba


【解决方案1】:

你可以在代码中这样做:

Dim w as Worksheet
Dim b As Button

Set w = ActiveSheet
Set b = w.Buttons.Add(5, 5, 80, 18.75)       ' left, top, width, height
b.OnAction = "recalculateSomething"          ' a sub name in module
b.Characters.Text = "Recalculate Something"  ' text on the button

更多:How to add a button programmatically in VBA next to some sheet cell data?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 2014-02-16
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多