excel 使用选项按钮设置变量

wfveoks0  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(159)

我有一本三张纸的练习册。
第一个工作表包含两个选项按钮和一个按钮。当用户单击按钮时,我希望将相应的工作表(选项按钮1的工作表2,选项按钮2的工作表3)复制到新工作簿,并提示用户保存新工作簿。

Dim SheetName As String
Dim OptionButton1, OptionButton2 As OptionButton

If OptionButton1 = True Then Set SheetName = Sheet2Name
If OptionButton2 = True Then Set SheetName = Sheet3Name

Sheets(SheetName).Copy
If MsgBox("Would you like to save the new workbook?", vbYesNo _
    + vbQuestion, "") = vbYes Then
    Application.Dialogs(xlDialogSaveAs).show
End If

我收到运行时错误
未设置对象变量
在这一行:

If OptionButton2 = True Then Set SheetName = Sheet3Name

当我将鼠标悬停在该行上时,它显示OptionButton2Nothing,但Optionbutton1Empty。我尝试将变量声明更改为:

Dim OptionButton1 As OptionButton
Dim OptionButton2 As OptionButton

但是两个OptionButton都是Nothing

ubby3x7f

ubby3x7f1#

你可以这样声明它:

Dim OptionButton1 As OptionButton
Set OptionButton1 = Sheet2.Shapes("Option Button 1").DrawingObject
uujelgoq

uujelgoq2#

您只对对象使用set,而不是像字符串和数字这样的基元类型。

If OptionButton1.Value = xlOn Then 
    SheetName = "Sheet2Name"
ElseIf OptionButton2.Value = xlOn Then 
    SheetName = "Sheet3Name"
Else
    Exit Sub
End If

相关问题