【发布时间】:2017-04-21 12:05:04
【问题描述】:
我编写了一段代码,当您单击一个按钮时,它会复制一张工作表,将其剥离以进行格式化,然后添加一个分配有不同宏的新按钮。
我的问题是我的两个按钮都是灰色的,我想自定义它们。
第一个按钮是 Excel 控件元素,并且始终存在于原始工作表上。我已经更改了字体、字体大小、下划线并使其变为粗体,方法是右键单击它并进入格式菜单,但我找不到更改其背景颜色的选项。
第二个按钮是通过 VBA 创建的,是一个 ActiveX 按钮。添加的代码如下
Sub TilføjKnap()
Dim Plads As Range
Dim Knap As OLEObject
Dim Kode As String
Sheets("Indleveringsplan (2)").Activate
Set Plads = ActiveSheet.Range("L7:N17")
Set Knap = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False)
With Knap
.Name = "EksportKnap"
.Object.Caption = "Eksporter til PDF"
.Left = Plads.Left + 10
.Top = Plads.Top
.Width = Plads.Width - 10
.Height = Plads.Height
.PrintObject = False
End With
Kode = "Private Sub EksportKnap_Click()" & vbNewLine
Kode = Kode & "Call Eksporter" & vbNewLine
Kode = Kode & "End Sub"
With ActiveWorkbook.VBProject.VBComponents(Worksheets("Indleveringsplan (2)").CodeName).CodeModule
.InsertLines .CountOfLines + 1, Kode
End With
End Sub
我假设我需要在 With Knap 中添加一些类似于 BackgroundColor 的内容,但我无法让它工作。
话虽如此,我还想给文本加下划线,更改其字体和字体大小以及使其变为粗体。
【问题讨论】:
-
背景色有帮助吗?
-
OleObject封装了CommandButton并通过.Object公开其接口,因此.Object.BackColor = vbRed和.Object.<any button property> = xxx -
在 With 中添加 .BackColor = RGB(255,0,0) 会导致运行时错误 '438' 对象不支持此属性或方法
-
@Alex K. 那行得通,可爱。您可以将其添加为答案,以便我关闭问题吗?