【问题标题】:How can I set OptionButton font using VBA For Loop?如何使用 VBA For Loop 设置 OptionButton 字体?
【发布时间】:2015-06-11 09:19:03
【问题描述】:

我正在尝试使用 For 循环手动将工作表上的每个 OptionButton 字体设置为统一大小和类型。 我可以通过写出每个特定按钮的信息来手动完成它们,但我有数百个按钮。 我什至可以通过在此处使用此代码让 VBA 将正确的语法写入测试工作表:

`Private Sub Thisworkbook_Open()
    For i = 1 to Worksheets("Core").OLEObjects.Count
        If TypeName(Worksheets("Core").OLEObjects(i).Object) = "OptionButton" Then
        Worksheets("testsheet").Range("A" & i).Value =     Worksheets("Core").OLEObjects(i).Name
        End If
    Next i
End Sub`

但我不能做的是将下面这段代码的其余部分与上面的代码一起放置一个干净简洁的语句,它将手动将所有 OptionButton 值设置为这些设置:

    `With Worksheets("Core").OptionButton1
   .Font.Size = 11
   .Font.Name = "Calibri"
   .Font.Bold = False
End With`

有人可以向我解释我怎样才能完成这项工作吗?

【问题讨论】:

  • 将您的 with 更改为 Worksheets("Core").OLEObjects(i) 将其粘贴在 if 语句中并且应该可以工作
  • 这也是我之前的想法并尝试过,但我得到一个运行时错误 438:对象不支持此属性或方法

标签: vba excel loops for-loop


【解决方案1】:

其实你有你的问题的答案,你所要做的就是把你的属性放在正确的位置,如下:

    For i = 1 To Worksheets("Core").OLEObjects.Count
        If TypeName(Worksheets("Core").OLEObjects(i).Object) = "OptionButton" Then

            Worksheets("Core").OLEObjects(i).Object.FontSize = 5
            ' Remaining code goes here.
        End If
    Next i

【讨论】:

  • 我的问题是我遗漏了那个 .Object。在 OLEObjects 和 FontSize 之间。 ---谢谢大家!我需要回馈并为我更精通的其他语言做出贡献。
猜你喜欢
  • 2016-07-05
  • 1970-01-01
  • 2019-08-23
  • 2018-05-07
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
相关资源
最近更新 更多