无需选择即可更改表单按钮的字体颜色

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

我想从代码中删除选择,因为这通常意味着它更高效、更健壮。 因此,有一段代码可以正常工作,但无法按照我预期的方式删除选择。

此代码更改表单按钮的颜色:

thisworkbook.Sheets("sheet 1").shapes.Range.(Array("Button 3")).Select
With Selection.Font
 .color = 10
End with

但是无法通过这种方式删除选择:

thisworkbook.Sheets("sheet 1").shapes.Range.(Array("Button 3")).Font.color = 10

它会丢弃运行时错误:438 - 对象不支持此属性或方法。

我们如何删除选择?

更新及解决方案:

thisworkbook.Sheets("sheet 1").shapes.Range.("Button 3").TextFrame.Characters.Font.color = 10

因此 Array() 从 ShapeRange 和 TextFrame.Characters 中删除。已添加到参考中。

excel vba forms button selection
2个回答
0
投票
thisworkbook.Sheets("sheet 1").shapes.Range.("Button 3").TextFrame.Characters.Font.color = 10

因此 Array() 从 ShapeRange 和 TextFrame.Characters 中删除。已添加到参考中。


0
投票

在 Excel VBA 中,当您想要操作表单按钮(或任何形状)的字体颜色而不显式选择它时,您需要正确引用形状及其文本。以下是如何在不使用

.Select
的情况下更改名为“Button 3”的表单按钮的字体颜色:

ThisWorkbook.Sheets("Sheet1").Shapes("Button 3").TextFrame.Characters.Font.Color = RGB(0, 0, 255)

说明:

  1. 板材和形状参考

    • ThisWorkbook.Sheets("Sheet1")
      指定表单按钮所在的工作表。确保将“Sheet1”调整为工作表的实际名称。
  2. 形状对象:

    • .Shapes("Button 3")
      指指定工作表上名为“Button 3”的表单按钮形状。将“按钮 3”替换为表单按钮的实际名称。
  3. 文本框架和字符:

    • .TextFrame.Characters
      允许您访问形状的文本属性。这是必要的,因为 Excel 中的表单按钮被视为形状,并且它们的文本可以通过这种方式设置格式。
  4. 字体.颜色:

    • .Font.Color
      设置字体颜色。您可以使用颜色索引(如
      10
      )或 RGB 值(
      RGB(0, 0, 255)
      表示蓝色)。

用法示例:

以下是如何在 VBA 代码中应用此功能:

Sub ChangeButtonColor()
    ThisWorkbook.Sheets("Sheet1").Shapes("Button 3").TextFrame.Characters.Font.Color = RGB(255, 0, 0)  ' Change to red
End Sub

备注:

  • 确保形状名称(本例中为“按钮 3”)与 Excel 中表单按钮的名称完全匹配。
  • 如果您的表单按钮没有文本,或者您正在修改形状的另一个方面(例如其填充颜色或轮廓),您将相应地调整属性(
    Fill.ForeColor
    Line.ForeColor
    等)。

通过直接引用形状并使用

.TextFrame.Characters.Font.Color
,您无需选择形状,从而提高了效率并使代码对于选择上下文的变化更加稳健。根据需要调整 RGB 值或颜色索引,以获得表单按钮所需的字体颜色。

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