Vba 基于唯一标识符将行复制到新电子表格中
在“粘贴新ID”选项卡中,从第2行开始的A列有用于标识人员的唯一ID列表。有三十个唯一的身份证号码 在“原始导出”选项卡中,有一组原始数据,其中从第2行开始的B列包含200多人的所有ID 我把一个ID号列表放在这里的“粘贴新ID”中,并将与该ID号关联的整行拉入测试。因此,只有在“将新ID粘贴到此处”工作表中指定了ID号的行才会复制到测试中 三十行中只有十行正在生成 我需要另一个循环吗Vba 基于唯一标识符将行复制到新电子表格中,vba,excel,Vba,Excel,在“粘贴新ID”选项卡中,从第2行开始的A列有用于标识人员的唯一ID列表。有三十个唯一的身份证号码 在“原始导出”选项卡中,有一组原始数据,其中从第2行开始的B列包含200多人的所有ID 我把一个ID号列表放在这里的“粘贴新ID”中,并将与该ID号关联的整行拉入测试。因此,只有在“将新ID粘贴到此处”工作表中指定了ID号的行才会复制到测试中 三十行中只有十行正在生成 我需要另一个循环吗 Sub ExtractID() Set i = Sheets("Raw Export") Set e = S
Sub ExtractID()
Set i = Sheets("Raw Export")
Set e = Sheets("Test")
Set p = Sheets("Paste New IDs Here")
Dim d
Dim j
Dim k
d = 1
j = 2
k = 2
Do Until IsEmpty(i.Range("B" & j))
If i.Range("B" & j) = p.Range("A" & k) Then
d = d + 1
k = k + 1
e.Rows(d).Value = i.Rows(j).Value
End If
j = j + 1
Loop
End Sub
您需要在k上添加一个内部循环:
Do Until IsEmpty(i.Range("B" & j))
Do Until isEmpty(p.Range("A"&k))
If i.Range("B" & j) = p.Range("A" & k) Then
d = d + 1
e.Rows(d).Value = i.Rows(j).Value
End If
k = k + 1
Loop
k=2
j = j + 1
Loop
您可以通过Excel以非常有效的方式完成这项工作。使用一些vlookup函数,您应该能够设置一个工作表,在该工作表中,只要将ID粘贴到特定列中,Excel就会检索相应的数据并显示它们。当您删除ID时,相应的数据将不再显示。这就是你想要的吗?@Louis.B这是我最初的目标,但在花了大量时间研究之后,我相信使用VBA是唯一的出路。我使用VBA使它工作,但我仍然想探索这个选项。有没有关于如何使用VLOOKUP复制整行的想法?这个想法不是使用VLOOKUP复制整行,而是使用VLOOKUP检索所需每列中的数据。给你一个想法,类似的东西应该会起作用:=vlookupPaste这里有新的ID!相关行;原材料出口!数据集;对应列。您甚至可以添加适当的if条件,以便在vlookup返回错误时不显示任何内容。告诉我,如果你需要更多的细节,我可以补充一个答案。