所以我要做的是遍历两列,如果第 1 列中的单元格中有一个值,在另一张纸上找到该值,然后取整行,然后将其粘贴到另一张纸上,然后取与第 1 列值相邻的第二列单元格中的值,然后将该行粘贴到同一工作表上。
因此,如果“Common Build”中的第 1 列等于 12345,它将在“S&OP Final Sheet”中搜索 12345,取整行,将其粘贴到“Common Build Projects”中,转到“Common Build”中的第二列(=12346) 搜索这些值,然后将该行粘贴到“Common Build Projects”中,然后向下遍历第二列直到下一个空白。目标是用户可以输入包含项目的列表并让它根据它读取它。每次都会以相同的方式格式化,这样就不会成为问题。我在每个之间留了一个空白,以便它能够退出到下一行。
代码运行良好,我只是无法获取值。我添加了手表,但什么也没发生。匹配列表有几千行长,所以我无法通过它直到它匹配。
该列表的格式是这样的(代码是让我显示它的唯一方法,如果格式不正确,请见谅)
CB project Individual Project
12335 12336
blank 12337
blank 12338
blank 12339
12345 12346
blank 12347
blank 12348
blank 12349
这是我当前的代码:
Sub CommonBuilds()
Sheets("Common Build").Select
Dim lastrow As Long
Dim y As String
lastrow = Cells(Rows.Count, 1).End(xlUp).row
For Each c In Range("A2:A" & lastrow)
y = Cells(c.row, 1).value
If y <> "" Then
Sheets("S&OP Final").Select
lastrow2 = Cells(Rows.Count, 1).End(xlUp).row
For Each c2 In Range("E2:E" & lastrow2)
If Cells(c2.row, 5).value = y Then
Cells(c2.row, 5).EntireRow.Copy
Sheets("Common Build Projects").Select
With Sheets("Common Build Projects")
.Rows(.Cells(Sheets("Common Build Projects").Rows.Count, 1).End(xlUp).row + 1).PasteSpecial xlPasteValues
End With
End If
Next
Sheets("Common Build").Select
For Each c3 In Range("B2:B" & lastrow)
z = Cells(c3.row, 2).value
If z <> "" Then
Sheets("S&OP Final").Select
For Each c2 In Range("E2:E" & lastrow2)
If Cells(c2.row, 5).value = z Then
Cells(c2.row, 5).EntireRow.Copy
Sheets("Common Build Projects").Select
With Sheets("Common Build Projects")
.Rows(.Cells(Sheets("Common Build Projects").Rows.Count, 1).End(xlUp).row + 1).PasteSpecial xlPasteValues
End With
End If
Next
ElseIf z = "" Then
Exit For
End If
Next
End If
Next c
End Sub