2013-10-01 4 views
0

У меня есть книга Excel (разрешает вызов serial_numbers), которая содержит список S/N на A1 до A10 (может быть более или менее).Поиск значения ячейки в другой книге excel

Теперь я должен найти значение A1 на рабочей книге «database». Это значение обычно находится в ячейке базы данных «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 

Этот кусок выше, кажется, не работает должным образом, и так как Im новой для этого я не могу получить, почему. Может ли кто-нибудь из вас помочь мне?

ответ

0

Если вы ищете решение, отличное от vba, то вы можете пойти за vlookup function.

Попробуйте этот код:

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 
+0

@GabrielPicareli Любая причина не принимает ответ. Чтобы узнать, как принять ответ, см. [This] (http://stackoverflow.com/about). – Santosh

Смежные вопросы