【发布时间】:2017-02-24 15:50:36
【问题描述】:
我正在尝试永久更改用户窗体,以便我只需运行一次代码,而不是每次单击打开用户窗体的按钮时运行它。
我发现这对某些人有用。我不确定我可能出了什么问题。
Sub FormatUserForms(UF As UserForm)
UF.BackColor = RGB(51, 51, 102)
Dim ctrl As Control
With ThisWorkbook.VBProject.VBComponents("UFNewRequest").Designer
For Each ctrl In UF.Controls
Select Case TypeName(ctrl)
Case "Label"
ctrl.BackColor = RGB(51, 51, 102)
ctrl.ForeColor = RGB(247, 247, 247)
Case "CommandButton"
ctrl.BackColor = RGB(247, 247, 247)
ctrl.ForeColor = RGB(0, 0, 0)
Case "TextBox"
ctrl.BackColor = RGB(247, 247, 247)
ctrl.ForeColor = RGB(0, 0, 0)
Case "OptionButton"
ctrl.BackColor = RGB(51, 51, 102)
ctrl.ForeColor = RGB(247, 247, 247)
End Select
Next
End With
End Sub
Sub formatting()
FormatUserForms UFNewRequest
End Sub
感谢您对此的任何帮助!
【问题讨论】:
-
那么,问题是什么?
-
顺便说一句,如果该代码在表单的代码隐藏中,请删除
UF参数并改用Meas you were told yesterday。FormatUserForms UFNewRequest正在发送默认实例,它不一定是当前正在执行的实例。 -
只是出于好奇,为什么要更改表单存储的二进制流中的控件属性?动态设置它们为表单加载增加了非常小的开销,并且如果您决定
TextBox背景颜色需要浅一些阴影,则方式更加灵活和可维护。
标签: vba excel userform programmatically permanent