【问题标题】:VBA Option Button does not get centeredVBA 选项按钮未居中
【发布时间】:2015-07-06 15:20:34
【问题描述】:

我有一个包含两行选项按钮的工作表。选项按钮 1-11 位于第 7 行,选项按钮 12-22 位于工作表的第 9 行。我的代码通过调用 centerOfCell 函数循环遍历每个选项按钮并将其居中在相应的单元格中。 当我运行我的程序时,Worksheets("Orders") 被传递到 CenterOptionButton 过程中,并且所有选项按钮都居中,除了选项按钮 1。我不知道为什么会发生这种情况。

Sub CenterOptionButton(wks As Worksheet)

Dim i As Byte

With wks
    Select Case .Name
        Case "RDC", "SKU"
            optionCount = 8
        Case "Orders"
            optionCount = 11
        Case Else
    End Select
    For i = 1 To optionCount
        .OLEObjects("OptionButton" & i).Left = centerOfCell(.Cells(7, i + 1))
        .OLEObjects("OptionButton" & i + optionCount).Left = centerOfCell(.Cells(9, i + 1))
    Next i

End With

End Sub

如果然后我自己运行以下过程,用 Worksheets("Orders") 替换 wks,一切都会完美运行。知道问题可能是什么吗?

Sub test()

Dim i As Byte

With Worksheets("Orders")
    Select Case .Name
        Case "RDC", "SKU"
            optionCount = 8
        Case "Orders"
            optionCount = 11
        Case Else
    End Select
    For i = 1 To optionCount
        .OLEObjects("OptionButton" & i).Left = centerOfCell(.Cells(7, i + 1))
        .OLEObjects("OptionButton" & i + optionCount).Left = centerOfCell(.Cells(9, i + 1))
    Next i

End With

End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    尝试复制另一个选项按钮并替换第一个选项按钮。问题可能会得到解决。至于为什么会这样,我不知道。 Excel 已经知道会出现未知错误。我通常会重新创建文件或对象,问题通常会得到解决。

    【讨论】:

    • 难以置信。有效!我一整天都在单步执行我的代码,监视窗口为此挠头。谢谢!
    • 乐于助人。你能结束这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2013-03-02
    • 2012-01-02
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    相关资源
    最近更新 更多