2016-07-24 25 views
0

Es ist Jahre her, seit ich letzten Code hatte, aber jetzt scheint ich es wieder zu brauchen.Excel VBA: Einfügen einer Zelle in eine Tabelle aus der Suche nach einer anderen Tabelle

Um zu vereinfachen, habe ich Nummer 7 in Spalte A, und ich muss eine andere Nummer in Spalte B eingeben, abhängig davon, welche Nummer 7 in einer anderen Tabelle in einem anderen Blatt bezieht.

Also in Sheet2 eine andere Tabelle hat Zahlen von 1 bis 10 in Spalte A und entsprechende Nummern in Spalte B. Ich brauche es dann nach Nummer 7 in Spalte A von Blatt2 suchen und geben Sie mir die Nummer in Spalte B, und platziere es in Spalte B im ersten Blatt.

Ich habe eine For-Schleife innerhalb einer For-Schleife versucht, basierend auf einem anderen Code, den ich irgendwo gefunden habe, aber es ist so lange her, dass ich Stunden damit verbringen musste, eine Lösung zu finden. Vielleicht ist das eine einfache Sache für fortgeschrittene Programmierer? Wie auch immer, danke im Voraus für die Hilfe!

+0

keine Notwendigkeit von VBA: Könnten Sie lookup() Formel in Sheet1 Spalte B-Zellen verwenden, die in Sheet2 Spalte A Zellen und kehrt benachbarten ich es könnte so einfach sein nicht wusste Zellenwert – user3598756

+0

aussieht! Danke vielmals! – Mike

+0

Beziehen Sie sich auf meinen Kommentar oder meine Antwort? – user3598756

Antwort

1

konnten Sie überhaupt nicht helfen, ohne VBA, dann können Sie diese verwenden

Option Explicit 

Sub main() 
    Dim cell As Range, f As Range 
    Dim rng1 As Range, rng2 As Range 

    Set rng1 = Worksheets("Sht1").Columns(1).SpecialCells(xlCellTypeConstants) '<--Change "Sht1" to your actual sheet1 name 
    Set rng2 = Worksheets("Sht2").Columns(1).SpecialCells(xlCellTypeConstants) '<--Change "Sht2" to your actual sheet2 name 
    For Each cell In rng1 
     Set f = rng2.Find(what:=cell.Value2, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=xlNo) 
     If Not f Is Nothing Then cell.Offset(, 1) = f.Offset(, 1) 
    Next cell 
End Sub 
0

Hier sind zwei Möglichkeiten, von mehr als zwei Tabellen der Suche zu tun.

Sub LoopValues() 
    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    Dim wsSource As Worksheet, wsSearch As Worksheet 
    Dim sourceLastRow As Long, searchLastRow As Long 
    Dim i As Long, j As Long 

    Set wsSource = Worksheets("Sheet3") 
    Set wsSearch = Worksheets("Sheet4") 

    With wsSource 
     sourceLastRow = .Range("A" & Rows.Count).End(xlUp).Row 
     searchLastRow = wsSearch.Range("A" & Rows.Count).End(xlUp).Row 

     For i = 2 To sourceLastRow 

      For j = 2 To sourceLastRow 

       If .Cells(i, 1).Value = wsSearch.Cells(j, 1).Value Then .Cells(i, 2).Value = wsSearch.Cells(j, 2).Value 

      Next 

     Next 

    End With 

    Application.ScreenUpdating = True 
    Application.Calculation = xlCalculationAutomatic 

End Sub 

Sub FindValuesLoop() 
    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    Dim wsSource As Worksheet, wsSearch As Worksheet 
    Dim sourceLastRow As Long 
    Dim i As Long 
    Dim SearchRange As Range, rFound As Range 


    Set wsSource = Worksheets("Sheet3") 
    Set wsSearch = Worksheets("Sheet4") 

    With wsSource 
     sourceLastRow = .Range("A" & Rows.Count).End(xlUp).Row 
     Set SearchRange = wsSearch.Range(wsSearch.Range("A1"), wsSearch.Range("A" & Rows.Count).End(xlUp)) 
     For i = 2 To sourceLastRow 

      Set rFound = SearchRange.Find(What:=.Cells(i, 1).Value, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) 

      If Not rFound Is Nothing Then .Cells(i, 2).Value = rFound.Offset(0, 1).Value 

     Next 

    End With 

    Application.ScreenUpdating = True 
    Application.Calculation = xlCalculationAutomatic 

End Sub 
Verwandte Themen