Excel 删除空行宏时类型不匹配

Excel 删除空行宏时类型不匹配,excel,vba,Excel,Vba,我创建了一个宏来删除所有工作表中的所有空行。宏运行,但出现“类型不匹配”错误。为什么会出现这个错误? 谢谢 发生这种情况的原因是.Value=”“并且单元格的值是错误的(它返回类型不匹配)。这是一个很好的解决方法: Sub RemoveEmptyRows() Dim i As Long, row As Long Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets For row = 10

我创建了一个宏来删除所有工作表中的所有空行。宏运行,但出现“类型不匹配”错误。为什么会出现这个错误? 谢谢


发生这种情况的原因是
.Value=”“
并且单元格的值是错误的(它返回类型不匹配)。这是一个很好的解决方法:

Sub RemoveEmptyRows()

    Dim i As Long, row As Long
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        For row = 10 To 1 Step -1
            If IsError(ws.Cells(row, 4)) Then
                ws.Rows(row).Delete
            ElseIf ws.Cells(row, 4).Value = "" Then
                ws.Rows(row).Delete
            End If
        Next row
    Next ws

End Sub

发生这种情况的原因是
.Value=”“
并且单元格的值是错误的(它返回类型不匹配)。这是一个很好的解决方法:

Sub RemoveEmptyRows()

    Dim i As Long, row As Long
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        For row = 10 To 1 Step -1
            If IsError(ws.Cells(row, 4)) Then
                ws.Rows(row).Delete
            ElseIf ws.Cells(row, 4).Value = "" Then
                ws.Rows(row).Delete
            End If
        Next row
    Next ws

End Sub

在哪条线上?您还说“宏运行”在抛出错误之前是否删除了任何行?它对我来说运行正常,不会抛出任何错误。哪一行给了您错误?您正在签入的单元格中是否有任何单元格包含错误?这是您尝试运行的所有代码,还是您已将其删除?您已将
I声明为整数
,您将其用于何处?这可能是罪魁祸首,具体取决于您使用它的目的。@jnevil是的,它会删除行,然后抛出错误。在哪一行?您还说“宏运行”在抛出错误之前是否删除了任何行?它对我来说运行正常,不会抛出任何错误。哪一行给了您错误?您正在签入的单元格中是否有任何单元格包含错误?这是您尝试运行的所有代码,还是您已将其删除?您已将
I声明为整数
,您将其用于何处?这可能是罪魁祸首,具体取决于您使用它的目的。@jnevil是的,它确实会删除行,然后抛出错误。谢谢Vityata,这段代码在不抛出错误的情况下帮助了我!谢谢Vityata,这段代码帮助了我而没有抛出错误!