vba - 删除所有重复行 Excel vba 无法正常工作

标签 vba excel

我在 excel 中创建了一个带有用户表单的工作簿,它允许您在工作表中导入 .csv 数据。
知道我有重复行的问题。我在这里找到了一个解决方案,但它不能 100% 工作。
( Delete all duplicate rows Excel vba ) 脚本删除了大部分重复数据,但仍有 2-5 行重复。首先我认为这是单元格的格式,但这不是问题......

这是宏:

    Sub DeleteRows()
       With ActiveSheet
           Set Rng = Range("A1", Range("T1").End(xlDown))
            Rng.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20), Header:=xlYes
       End With
    End Sub

剩余的重复数据以负数开头。我不知道这是否有助于找到解决方案...

最佳答案

我不知道真正的问题,但我通过在每个单元格中添加一个点来解决它。
示例:

1. Cell1  -> .Cell1
2. Remove the duplicates
3. .Cell1 -> Cell1

这是代码:
Sub DeleteRows()
Dim c As Long
With ActiveSheet
    For c = 1 To 20
        If Application.CountA(.Columns(c)) Then
            .Columns(c).TextToColumns Destination:=.Cells(1, c), _
              DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
        End If
    Next c
    With .Range("A1", .Range("T1").End(xlDown)).Cells
        .RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20), Header:=xlYes
    End With
End With
End Sub

Private Sub CommandButton2_Click()
.
.'some code'
.
For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row
    column = ActiveSheet.Range("A" & i).value
    If column < 0 Then
        column = "." & column
        ActiveSheet.Range("A" & i).value = column
    End If
Next

Call DeleteRows

For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row
    firstChar = Left(ActiveSheet.Range("A" & i).value, 1)
    If firstChar = "." Then
        column = Right(ActiveSheet.Range("A" & i).value, Len(ActiveSheet.Range("A" & i).value) - 1)
        ActiveSheet.Range("A" & i).value = column
    End If
Next
.
.'some code'
.
End Sub

这不是最好的解决方案,但它有效!
感谢您的帮助。

关于vba - 删除所有重复行 Excel vba 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819461/

相关文章:

vba - 在某些函数名称中尾随 "$"有什么意义?

vba - Excel VBA Range(Cell).Value=sum 1004 :Application-Defined Or Object-Defined

excel - VBA中如何使用不等于条件与通配符?

Excel 货币求和函数

excel - 使用 EPPlus Lib C#.Net 在 Excel 中格式化列

excel - 将新标签页复制并粘贴到 MSForms.Page 中

excel - SendInput VB 基本示例

Excel VBA 438 在 PC 上出现错误,但在 Mac 上未出现

arrays - Excel VBA 查找数组中的最后一个条目(但不在电子表格中)

python - Openpyxl - 从 Excel 文件中的所有工作表中删除格式