VBA上的错误1004

时间:2015-03-11 09:05:59

标签: excel vba excel-vba

我有五个工作表,它们使用下面的代码存储在工作簿中。第一个工作表与代码完美配合。第二个电子表格可以在返回错误之前检查第一个项目。随后的第三个和第四个工作表立即返回错误。另一方面,第五个工作表返回错误400.我可能知道我的代码是问题的根源,或者它是复选框,因为我从第一个工作表复制并粘贴。

Sub test5()
    Dim MyFile As String
    Dim FinalRow As Long
    Dim Row As Long
    Dim i As Integer
    Dim d As Integer
    d = 2
    i = 0
    FinalRow = Cells(Rows.count, "S").End(xlUp).Row
    For Row = 3 To FinalRow
         If Not IsEmpty(ActiveSheet.Cells(Row, "S")) Then
                i = i + 1
                d = d + 1
                MyFile = ActiveSheet.Cells(Row, "S").Value
                If Dir(MyFile) <> "" Then
                    ActiveSheet.OLEObjects("CheckBox" & i). _
                        Object.Value = True ' <~~~~~~~~~~~~~~~~ Error occurs here
                    With ActiveSheet.Cells(d, "F")
                        .Value = Now
                        .NumberFormat = "dd/mm/yy"
                        'If (ActiveSheet.Cells(d, "F") - ActiveSheet.Cells(d, "G") >= 0) Then
                        '    ActiveSheet.Cells(d, "F").Font.Color = vbRed
                        'End If
                        If (.Value - .Offset(0, 1).Value) >= 0 Then
                            .Font.Color = vbRed
                        Else
                            .Font.Color = vbBlack
                        End If
                    End With
                   ' i = i + 1
                    'd = d + 1
                End If
         End If
    Next
End Sub

程序在进入这行代码后终止:

ActiveSheet.OLEObjects("CheckBox" & i). _ Object.Value = True 

1 个答案:

答案 0 :(得分:0)

OLEObject 的成员名为 value 。如果您尝试显示OLEObject,请使用可见而不是

ActiveSheet.OLEObjects("CheckBox" & i).Visible = True

在此处查看所有OLEObject成员:

OLEObject Object Members