0

我试图弄清楚如何使用在两个工作表上找到的唯一标识符通过另一工作表中的信息对 Excel 文档中的一个工作表中的信息进行排序。

我在 Excel 中有两个单独的工作表,sheet1其中包含用户信息,包括姓名、性别和一个或多或少像这样的唯一 ID:

      A      | B |  C
John Doe     | M | 112 
Jane Doe     | F | 147 
Kerry West   | F | 293
Robert Smith | M | 861

Sheet 2包含一个唯一标识符和一个像这样的分数:

 A  | B
112 | 15
147 | 12
293 | 18
861 | 11

我想要做的是根据性别将第二张表中的两组分开。所以基本上我会以某种方式获取表 2 上的唯一 ID,在表 1 中找到它,然后检查与该唯一 ID 关联的性别,以便表 2 最终看起来像这样:

 A  | B  |  C  | D
112 | 15 | 147 | 12
861 | 11 | 293 | 18

因此,标识为男性的行保留在它们的列中,而标识为女性的行移动到列 C 和 D。我只是不知道我是如何做到这一点的,这让我发疯了。任何帮助或建议将不胜感激。

4

1 回答 1

1

尝试这样的事情:

创建一个名为“Sheet3”的工作表,这是汇总将填充的地方。这应该让你开始。

Sub nameList()

Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim lc1, lc2, x, y, i, vLook

Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
Set sh3 = Sheets("Sheet3")

lc1 = sh1.Cells(Rows.Count, "A").End(xlUp).Row
lc2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row

x = 2
y = 2
For i = 2 To lc1
    vLook = Application.WorksheetFunction.VLookup(sh1.Cells(i, 3), Range(sh2.Cells(1, 1), sh2.Cells(lc2, 2)), 2, "false")
    If sh1.Cells(i, 2) = "M" Then
        sh3.Cells(x, 1) = sh1.Cells(i, 3)
        sh3.Cells(x, 2) = vLook
        x = x + 1
    Else
        sh3.Cells(y, 3) = sh1.Cells(i, 3)
        sh3.Cells(y, 4) = vLook
        y = y + 1
    End If
Next i

End Sub
于 2013-10-26T15:51:47.420 回答