使用For循环的VBA Userform中所有控件的字体

时间:2017-06-22 14:21:47

标签: vba excel-vba fonts controls userform

The sample userform

我想要的是,当我按下按钮时,所有控件的字体都会更改为所需的值。我为下面的commandbutton写了这个,它适用于它。

Private Sub CommandButton2_Click()
CommandButton2.Font = "Arial"
End Sub

这很好用。但是当我尝试将for循环用于同一个应用程序时,我会收到错误。我收到错误的片段是

Private Sub CommandButton2_Click()
Dim x As Control
CommandButton2.Font = "Arial"
For Each x In Me.Controls
    x.Font = "Arial"
Next
End Sub

错误:

  

' 438:对象不支持此属性或方法'。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您可以确定所有控件都有Font属性,那么只需将wkwebview更改为x.Font = "Arial"

如果您有图片,滚动条,旋转按钮或其他没有字体的控件,您可以使用IF语句过滤掉它们:

x.Font.Name = "Arial"

或者您可以使用较小的建议Private Sub CommandButton2_Click() Dim x As Control CommandButton2.Font = "Arial" For Each x In Me.Controls If TypeName(x) <> "Image" And TypeName(x) <> "SpinButton" And TypeName(x).... Then x.Font.Name = "Arial" End If Next End Sub ..

On Error Resume Next