使用vbscript在excel列中查找重复项

时间:2013-07-18 15:01:59

标签: excel vbscript duplicates

我在通过VBscript创建的excel列中找到重复项时遇到问题。

我目前正在从数据库中获取数据,打开excel文件,将数据放入其中,然后在列E 上按字母顺序对数据进行排序(如果不需要,可以轻松删除)

现在我遇到的问题是我试图在列E (错误)中找到任何重复项。

如果有重复,我想复制副本并将其粘贴到我创建的另一张(A列)

Set oWS7 = oWB.Worksheets(7)
oWB.Sheets(7).Name = "Dups" 

在oWS7的 B栏中,我想从原始工作表中放入所有相应的列C (帐户)。

因此,许多帐户的比率会出现 1错误。如果没有重复,我想让他们独自一人。我不确定这是多么清楚,但任何问题/帮助都会非常感激。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我将做出以下假设:

  • 工作表中的内容从第一行开始
  • 第一行(仅第一行)是标题行。
  • 标题行和数据行之间没有空行。
  • 数据已经排序。

如果这些假设适用,则以下内容应该有效(一旦您输入正确的表格号码):

Set data = oWB.Sheets(...)  '<-- insert correct sheet number here

j = 1
For i = 3 To data.UsedRange.Rows.Count
  If data.Cells(i, 5).Value = data.Cells(i-1, 5).Value Then
    oWS7.Cells(j, 1).Value = data.Cells(i, 5).Value
    oWS7.Cells(j, 2).Value = data.Cells(i, 3).Value
    j = j + 1
  End If
Next

答案 1 :(得分:0)

&#39; 如何从源Excel工作表中找到重复的单元格值

Set oXL = CreateObject("Excel.application")
oXL.Visible = True
Set oWB = oXL.Workbooks.Open("ExcelFilePath")
Set oSheet = oWB.Worksheets("Sheet1")         'Source Sheet in workbook

r = oSheet.usedrange.rows.Count
c = oSheet.usedrange.columns.Count

inttotal = 0
For i = 1 To r
    For j = 1 To c
        If oSheet.Cells(i,j).Value = "aaaa" Then
            inttotal = inttotal+1
        End If
    Next
Next

MsgBox inttotal

oWB.Close
oXL.Quit