如何匹配表中的相似值-复制到新工作表

时间:2018-12-19 21:33:27

标签: excel-vba

我试图在表格的单元格中采用类似的模式,并将其复制到新的工作表中。当发生匹配的模式时,我需要将单元格附加到新的工作表中,而不是复制过来。然后我需要脚本移动到该行的下一个单元格,并寻找另一个匹配的模式,并执行与上述相同的操作,但在新工作表的下一列中。 这是我尝试匹配的一些匹配模式:

grp.app
grp.vdi
grp.share
grp.ctx

每个条目的末尾都会有其他信息,但是我只想收集该级别的所有相似条目。

这是我所拥有的简短示例。

user Id  random groups   random groups   random groups    random groups
user1    grp.ctx.1       grp.share.100    grp.app.7       grp.app.15
user2    grp.ctx.10      grp.vdi.20       grp.app.10      grp.app.2

这就是我所需要的。

user Id  Applications      VDI            Fileshare           Citrix
user1     grp.app.7                      grp.share.100       grp.ctx.1
          grp.app.15

user2     grp.app.10      grp.vdi.20                        grp.ctx.10
          grp.app.2

我还需要匹配循环结束并在到达空列单元格值时转到下一行。

将所有匹配的模式复制(追加)到新的工作表中。我需要具有多个条目并按字母顺序排序的单个单元格。

这是我开始的一些错误代码。抱歉,这是我的新手。

Sub Findandcut()
Dim row As Long
Dim lastrow As Integer
lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).row
Dim org(1 To lastrow) As String
Dim startcol As Integer
startcol = 2
For row = 1 To lastrow
    ' Check if "condition" appears in the value anywhere.
    org(row) = Worksheets("totals").Cells(row, startcol).Value
    If Cells(row, startcol).Value Like "*grp.app*" Then
        Worksheets("totals").Cells(row, startcol).Value = Cells(row, startcol).Value & ", " & org(row)
    ElseIf Cells(row, startcol).Value Like "*ctx*" Then
        startcol = startcol + 1
        Worksheets("totals").Cells(row, startcol).Value = Cells(row, startcol).Value & ", " & org(row)
    ElseIf Cells(row, startcol).Value Like "*grp.vdi*" Then
        startcol = startcol + 2
        Worksheets("totals").Cells(row, startcol).Value = Cells(row, startcol).Value & ", " & org(row)
        Range("EC" & row).Copy Worksheets("totals").Range("B" & row)
    ElseIf Range("B" & row).Value Like "*ntfs*" Then
        Range("ED" & row).Value = Range("B" & row).Value & ", " & org4

    End If
Next

我改变了策略,回到顶端尝试其他尝试。但是我只是茫然。

0 个答案:

没有答案