在其他excel工作簿中搜索单元格值
我有一个Excel工作簿(让我们调用序列号),其中包含在其他excel工作簿中搜索单元格值,excel,vba,Excel,Vba,我有一个Excel工作簿(让我们调用序列号),其中包含A1到A10上的序列号列表(可以多或少) 现在我必须在工作簿“数据库”中搜索A1的值。该值通常位于工作簿“数据库”的A1单元格中 如果我找到A1的值,我需要复制并粘贴工作簿“数据库”的B2值,该值包含该值的当前库存 通过Excel上的开发人员模式,我得到了以下结果: Sub Macro1() ' ' Check stock for S/N in database ' ' Range("A1").Select Selectio
A1
到A10
上的序列号列表(可以多或少)
现在我必须在工作簿“数据库”中搜索A1
的值。该值通常位于工作簿“数据库”的A1
单元格中
如果我找到A1
的值,我需要复制并粘贴工作簿“数据库”的B2
值,该值包含该值的当前库存
通过Excel上的开发人员模式,我得到了以下结果:
Sub Macro1()
'
' Check stock for S/N in database
'
'
Range("A1").Select
Selection.Copy
Workbooks.Open Filename:="database.xlsx", _
UpdateLinks:=0
Range("A1").Select
Selection.Find(What:="XXXXXX", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("B1").Select
Application.CutCopyMode = False
Selection.Copy
Windows("serial_numbers.xlsx").Activate
Range("B1").Select
ActiveSheet.Paste
End Sub
上面的那篇文章似乎不能正常工作,因为我是新手,我不明白为什么。有谁能帮我吗?如果您正在寻找非vba解决方案,那么您可以选择
vlookup函数
请尝试以下代码:
Sub testMacro()
Dim wkbDB As Workbook
Dim rngFind As Range, rngSearch As Range, cell As Range
Dim shtDB As Worksheet
Set wkbDB = Workbooks.Open(Filename:="C:\database.xlsx", UpdateLinks:=0)
Set shtDB = wkbDB.Sheets("Sheet1")
Set rngSearch = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
For Each cell In rngSearch
Set rngFind = shtDB.Range("A1:A10").Find(What:=cell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
If Not rngFind Is Nothing Then
'serial_numbers.xlsx
cell.Offset(0, 1) = rngFind.Offset(0, 1)
End If
Next
End Sub
@加布里埃尔·皮卡雷利没有任何不接受答案的理由。要知道如何接受答案,请参见。