【发布时间】:2018-05-03 01:12:57
【问题描述】:
我正在尝试创建一个宏,该宏将从工作簿中打印出选定的工作表。第一个工作表有一组复选框,它们都遵循命名约定“CheckBoxX”,其中 X 是该复选框的编号。我希望代码执行的操作是遍历每个复选框,查看是否已选中,然后选择相应的工作表(如果已选中)。但是,我收到错误消息“对象不支持此属性或方法”。
这是我的代码: 代码:
Option Explicit
Sub Button14_Click()
Dim count As Integer
Dim checkNumber As String
For count = 1 To ThisWorkbook.Worksheets.count
checkNumber = "CheckBox" & count
If Sheets("Print").Shapes(checkNumber).OLEFormat.Object.Value = True Then
Worksheets(count + 1).Select (False)
End If
Next count
ActiveWindow.SelectedSheets.PrintOut
End Sub
调试总是用 if 语句标记行。
我也试过这个作为我的 if 语句:
If Sheets("Print").Shapes(checkNumber).ControlFormat.Value = 1 Then
解决方案:我所要做的就是改变这一行:
If Sheets("Print").Shapes(checkNumber).OLEFormat.Object.Value = True Then
到这里:
If Sheets("Print").Shapes(checkNumber).OLEFormat.Object.Object.Value = True Then
【问题讨论】:
-
您的复选框是 ActiveX 类型还是表单类型?
-
它们是 ActiveX