我很擅长excel,所以请耐心等待。
在我的工作簿的Sheet1上,我有像CostumerID,CostumerName,Email等数据在A-G列中传播。 CostumerID用ID填充,CostumerName为空。
在我的工作簿的Sheet2上,我有2列(A和B)。 A列包含CustomerID,B列包含该CustomerID的正确CustomerName。
我的问题是:
我需要一个转到Sheet1的宏,读取A列中的CustomerID,然后转到Sheet2,在A列中找到CustomerID,在B列中获取CustomerName并将该名称粘贴到Sheet1旁边的Sheet1中的B列从中获得第一个CustomerID。
进一步阐述:
步骤1:获取工作表1上A列的单元格值
步骤2:转到Sheet2,在A列中找到该值,然后从同一行复制CustomerName。
步骤3:将CostumerName粘贴到与B上的A列原始值相同的行中的B列。
Sheet1可以是100-6000行,它需要检查Sheet1中A列中的所有CustomerID,并找到相应的CustomerName。 Sheet1上的A列可能有重复,但D,F和G列的值都是唯一的。
通常我会尝试如何做到这一点,但我不知道该怎么做。
有人有想法吗?
非常感谢任何帮助!
答案 0 :(得分:0)
<强>&#34; Mark Wickett&#34; 已正确指出。 但如果你仍然想要去vba而不是这里。
这里说的是你的第一张纸的截图
这是第二张的截图
这是代码
Dim rngCust As Range
Dim rNo As Long
Dim strCust As String
Dim rngSearch As Range
Dim rngFound As Range
Dim intFound As Long
Application.ScreenUpdating = False
Set rngCust = Sheets(1).Range(Cells(2, 1), Cells(2, 1).End(xlDown))
For Each cell In rngCust.Cells
rNo = cell.Row
strCust = Cells(rNo, 1).Value
Sheets(2).Select
Set rngSearch = Sheets(2).Range(Cells(2, 1), Cells(2, 1).End(xlDown))
Set rngFound = rngSearch.Find(What:=strCust, Lookat:=xlWhole, _
SearchOrder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)
If Not rngFound Is Nothing Then
intFound = rngFound.Row
End If
Sheets(1).Select
Sheets(1).Cells(rNo, 2).Value = Sheets(2).Cells(intFound, 2).Value
Next
Application.ScreenUpdating = True
这是输出