我想从代码中删除选择,因为这通常意味着它更高效、更健壮。 因此,有一段代码可以正常工作,但无法按照我预期的方式删除选择。
此代码更改表单按钮的颜色:
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 中删除。已添加到参考中。
thisworkbook.Sheets("sheet 1").shapes.Range.("Button 3").TextFrame.Characters.Font.color = 10
因此 Array() 从 ShapeRange 和 TextFrame.Characters 中删除。已添加到参考中。
在 Excel VBA 中,当您想要操作表单按钮(或任何形状)的字体颜色而不显式选择它时,您需要正确引用形状及其文本。以下是如何在不使用
.Select
的情况下更改名为“Button 3”的表单按钮的字体颜色:
ThisWorkbook.Sheets("Sheet1").Shapes("Button 3").TextFrame.Characters.Font.Color = RGB(0, 0, 255)
板材和形状参考:
ThisWorkbook.Sheets("Sheet1")
指定表单按钮所在的工作表。确保将“Sheet1”调整为工作表的实际名称。形状对象:
.Shapes("Button 3")
指指定工作表上名为“Button 3”的表单按钮形状。将“按钮 3”替换为表单按钮的实际名称。文本框架和字符:
.TextFrame.Characters
允许您访问形状的文本属性。这是必要的,因为 Excel 中的表单按钮被视为形状,并且它们的文本可以通过这种方式设置格式。字体.颜色:
.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
Fill.ForeColor
、Line.ForeColor
等)。通过直接引用形状并使用
.TextFrame.Characters.Font.Color
,您无需选择形状,从而提高了效率并使代码对于选择上下文的变化更加稳健。根据需要调整 RGB 值或颜色索引,以获得表单按钮所需的字体颜色。