VBA - 如何更改按钮文本

问题描述 投票:0回答:6

我将 Excel VBA 宏分配给命令按钮,我需要知道如何在执行宏时将文本更新为“正在加载”。

我测试了以下代码,但没有成功:

Worksheets("Sheet1").Button9.Caption = "Loading"
excel vba button
6个回答
18
投票

浏览

Buttons
集合:

Worksheets("Sheet1").Buttons("Button9").Text = "Loading"

3
投票

您应该尝试使用 Active X 按钮并将此代码添加到该 Active X 按钮单击事件中。另外,将此代码放入此活动 X 按钮所在的同一工作表中。:

我假设您的按钮起始文本是“原始文本”。您可以在代码中将其替换为您自己的文本。另外,我添加了 5 秒延迟只是为了模仿正在加载的内容。您可以用您的代码替换该部分。另请注意,在我的情况下,活动 X 按钮名称是 CommandButton21,在您的情况下,它可能会有所不同。相应地更新您的代码。

Private Sub CommandButton21_Click()
CommandButton21.Caption = "Loading"
Application.Wait (Now + TimeValue("0:00:05"))
CommandButton21.Caption = "Original Text"
End Sub

2
投票

这对我有用

Worksheets("Sheet1").Button9.TextFrame.Characters.Text = "正在加载"


0
投票

如果是 Active X 按钮:

Dim ws As Worksheets
Set ws = Worksheets("Sheet1")

Worksheets(ws.Name).addbutton.Caption = "Ajouter"

其中

addbutton
是按钮名称。


0
投票

浏览形状集合:

Worksheets("Sheet1").Shapes("Button9").AlternativeText = "Loading"

(并非每个按钮/形状都有 TextFrame.Characters.Text)


0
投票

假设按钮在Sheet1上,按钮名称为“Button 116”,您可以按如下方式获取或更改按钮的文本:

Sheet1.Buttons("按钮 116").Text = "新按钮文本"

s1 = Sheet1.Buttons("按钮 116").text

如果您想通过工作表的名称而不是物理工作表顺序来引用特定的工作表,您可以使用:

工作表(“工作表名称”)。

如果您不知道工作表的名称(例如不同工作表的按钮使用相同的宏),您可以使用:

活动表。

表单按钮很棘手,因为默认生成的按钮名称包含空格(例如“Button 116”)。引用该按钮的最简单方法是使用带引号的名称。您可以通过选择按钮来找到按钮的名称,然后查看工作表的左上角,其中显示了所选对象的名称(确保在视图菜单下选中了“公式栏”)。

如果您习惯在进一步输入参考资料时 VBA 自动显示可用选项,那会很令人沮丧。例如,如果您输入:

活动表。

VBA 没有列出可用选项(至少在我的 Excel 版本 - Office 2016 Pro 中没有)。如果您输入 .Button 引用,它会接受它并在您按 Enter 后将其大写。

如果您输入:

表1.

VBA 将为您提供一个选项列表,但“按钮”不在选项列表中 - 即使“按钮”是一个有效选项(同样,在我的 Office 2016 Pro 版本的 Excel 上)。

© www.soinside.com 2019 - 2024. All rights reserved.