VBA选项按钮不会居中

时间:2015-07-06 06:57:26

标签: excel-vba vba excel

我有一个包含两行选项按钮的工作表。选项按钮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

如果我然后单独运行以下程序,用工作表(“订单”)代替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

1 个答案:

答案 0 :(得分:0)

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