我正在尝试永久更改用户窗体,以便我只需运行一次代码而不是每次单击按钮以打开用户窗体时都会运行该代码。永久更改用户形式
我发现这适用于某些人。我不确定对我来说可能是错的。
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'参数并使用'Me',而不是[如昨天告诉](http://stackoverflow.com/a/42421855/1188513)。 'FormatUserForms UFNewRequest'正在发送**默认实例**,它**不一定是当前正在执行的实例**。 –
出于好奇,为什么要更改表单的存储二进制流中的控件属性?动态设置它们会为表单加载增加非常小的开销,并且如果您决定'TextBox'背景颜色需要变得更轻一些,那么它将更加灵活和可维护。 – Comintern