我有一个包含两行选项按钮的工作表。选项按钮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
答案 0 :(得分:0)
尝试复制其他选项按钮并替换第一个选项按钮。问题可能会得到解决。至于为什么会这样,我不知道。 Excel已经知道了未知的错误。我通常会重新创建文件或对象,通常会解决问题。