第6行上的对象所需错误

时间:2016-06-24 05:27:50

标签: excel vba excel-vba error-handling

我在第6行遇到了Object Required错误。有人可以告诉我代码中有什么问题吗?

Dim row As Range
Dim sheet As Worksheet
Dim lR As Long
Dim flag As Boolean
Set sheet = Sheets("Sheet3")
Set lR = sheet.UsedRange.SpecialCells(xlCellTypeLastCell).Rows.Count

For a = 1 To lR
    For i = 1 To lR
        Set row = sheet.Rows(i)
        If WorksheetFunction.CountA(row) = 0 Then
            flag = True
            sheet.Range("A" & i).EntireRow.Delete
        End If
    Next i
Next a
If flag = False Then
MsgBox "No Empty Rows Found"
End If

2 个答案:

答案 0 :(得分:2)

你没有长整数设置为.Count。只需使用 = 分配值即可。另外,您需要xlCellTypeLastCell的行号;不是它所在的行数(总是为1)。

lR = sheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

或者是,

lR = sheet.UsedRange.Rows.Count

答案 1 :(得分:0)

只需删除'Set',它就会起作用,因为当我们声明一个可变的对象时我们只使用“Set”。像工作表一样(这里工作表是一个对象) 不像lr那么长(long是数据类型,而不是对象)。

而不是 设置lR = sheet.UsedRange.SpecialCells(xlCellTypeLastCell).Rows.Count

写道 - lR = sheet.UsedRange.SpecialCells(xlCellTypeLastCell).Rows.Count

谢谢!