【问题标题】:How to delete a Excel row data in such case在这种情况下如何删除 Excel 行数据
【发布时间】:2017-03-17 11:53:39
【问题描述】:

我有如下 Excel 数据:

----|----|----|--
      A         B
----|----|----|--
      C    D
----|----|----|--
      B    A
----|----|----|--

并且在我的需要中,第一行“A B”等于第三行“B A”,我只想保留其中一个。如何删除另一个,THx

【问题讨论】:

  • 那么,您需要删除具有重复信息(可能以任何顺序出现)的行吗?你保留哪一行重要吗?如果是这样,你怎么知道哪些应该留下,哪些应该离开? (♪ ♫ 快来告诉我 ♪ ♫ )
  • @BruceWayne 如果它留下来会很麻烦,但如果它去了......任何人都有花生。 Dang 把我的话弄混了。
  • 表格可能包含大约 2W+ 行,我只想保留一行,无论“AB”或“BA”,可能有数千个情况(如“AB” --- -" BA " ,or " LN " ----" NL " 。我尝试使用VBA处理,购买失败

标签: excel vba row delete-row


【解决方案1】:

我可以测试和修改代码如下:

Option Explicit

Sub MAIN()
    Dim dataRng As Range, col As Range, cell As Range

    With Worksheets("myWorksheetName") '<--| change "myWorksheetName" to your actual worksheet name
        With .UsedRange
            Set dataRng = .Cells
            With .Offset(1, .Columns.Count + 1).Resize(.Columns.Count, .Rows.Count)
                .Value = Application.Transpose(dataRng.Value)
                For Each col In .Columns
                    col.Sort key1:=col.Cells(1, 1), order1:=xlAscending, Header:=xlNo
                    col.Cells(1, 1).Offset(-1) = Replace("|" & Join(Application.Transpose(col.Value), "|") & "|", "||", "")
                Next col

                For Each cell In .Rows(1).Offset(-1, 1).Resize(, .Columns.Count - 1).Cells
                    If WorksheetFunction.CountIf(.Rows(1).Offset(-1).Resize(, cell.Column - .Columns(1).Column), cell.Value) > 0 Then .Offset(, -1).Cells(cell.Column - .Columns(1).Column, 1) = 1
                Next cell
                .Offset(-1).Resize(.Rows.Count + 1).ClearContents
            End With

            With .Resize(, .Columns.Count + 1)
                .AutoFilter Field:=.Columns.Count, Criteria1:=1
                .Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            End With
        End With
    End With
End Sub

【讨论】:

  • 当脚本运行到第 7 行时会弹出类似“error 1004”的错误
  • 我没有行号,请输入引发错误的行以及错误号和描述。
  • 这一行 " With .Offset(1, .Columns.Count + 1).Resize(.Columns.Count, .Rows.Count) " , 错误是 " Error 1004 "Application-defined or对象定义错误“”,我已经替换了工作表名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
相关资源
最近更新 更多