Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 删除重复的行。(类型不匹配错误)_Vba_Excel - Fatal编程技术网

Vba 删除重复的行。(类型不匹配错误)

Vba 删除重复的行。(类型不匹配错误),vba,excel,Vba,Excel,我在“If Not LRow=Range(“C65536”).End(xlUp).Row=”“Then”行上得到类型不匹配错误 此代码应删除除空行之外的所有重复实体。试图将数据类型从Long更改为Variant,但它会删除所有行,包括空行。这是因为行数是一个数值,您正在将其与字符串进行比较 Private Sub DEDUPLICATE_Click() Application.ScreenUpdating = False Dim n As Long Dim LRow As

我在“If Not LRow=Range(“C65536”).End(xlUp).Row=”“Then”行上得到类型不匹配错误


此代码应删除除空行之外的所有重复实体。试图将数据类型从Long更改为Variant,但它会删除所有行,包括空行。

这是因为行数是一个数值,您正在将其与字符串进行比较

Private Sub DEDUPLICATE_Click()
    Application.ScreenUpdating = False
    Dim n As Long
    Dim LRow As Long
    If Not LRow = Range("C65536").End(xlUp).Row = 0 Then
        LRow = Range("C65536").End(xlUp).Row
        For n = LRow To 6 Step -1
            If Application.WorksheetFunction.CountIf(Range("C6:C" & n), Range("C" & n).Text) > 1 Then
                Range("C" & n).EntireRow.Delete
            End If
        Next n
    End If
End Sub
谢谢

试试这个:

Private Sub DEDUPLICATE_Click()
Application.ScreenUpdating = False
Dim n As Long
Dim LRow As Long

    LRow = Range("C65536").End(xlUp).Row

    For n = LRow To 6 Step -1
        If Application.WorksheetFunction.CountIf(Range("C6:C" & n), Range("C" & n).Text) > 1 Then
        If Not Range("C" & n).Value = "" Then
            Range("C" & n).EntireRow.Delete
        End If
        End If
    Next n
End Sub

你到底想查什么?您想检查LRow是否是最后一行,第二个验证是什么?是否要查看最后一行的内容是否为空?@MarcoGetrost第一个条件是代码检查excel中的所有行,避免删除空行,然后删除重复的数据。请重试。你把if和for循环搞混了。
Private Sub DEDUPLICATE_Click()
Application.ScreenUpdating = False
Dim n As Long
Dim LRow As Long

    LRow = Range("C65536").End(xlUp).Row

    For n = LRow To 6 Step -1
        If Application.WorksheetFunction.CountIf(Range("C6:C" & n), Range("C" & n).Text) > 1 Then
        If Not Range("C" & n).Value = "" Then
            Range("C" & n).EntireRow.Delete
        End If
        End If
    Next n
End Sub