2016-04-19 2 views
0

Entschuldigen Sie meinen Mangel an Programmiersprache, ich bin gerade in VBA-Codierung. Ich habe eine Liste von Herstellern (Namen) mit Kontaktdaten auf eine, die ich gerne auf meinem "SPECSHEET" automatisch bei der Auswahl des Herstellers ausgefüllt werden.vba, wie Zelle mit Bereich und Rückgabewert in benachbarten Zellen übereinstimmen?

Arbeitsblatt "SPECSHEET" ist vollständig aus Makro erstellt.

Arbeitsblatt „Contacts“ hat eine Liste mit den Namen in der Spalte A und Telefonnummern in der Spalte C

Arbeitsblatt „DATENBLATT“ Informationen über jede Leuchte hält.

Ich bin erfolgreich in den richtigen Namen des Herstellers zeigt:

Worksheets("SPECSHEET").Cells(Company, 5).Value = Worksheets("DATASHEET").Cells(1, 5).Value 

Aber Ich mag die Zeile unter der Telefonnummer anzuzeigen:

If Worksheets("SPECSHEET").Cells(3, 4).Value = Worksheets("CONTACT").Range(A:A).Value Then 
Worksheets("SPECSHEET").Cells(3, 5).Value = Worksheets("CONTACT").Cells(B "name adjacent to the matched name in column A) 
End If 

Vielen Dank für jede Hilfe.

Antwort

1

Try this:

Dim t 
t = Application.Match(Worksheets("SPECSHEET").Cells(3, 4).Value, Worksheets("CONTACT").Range("A:A"), 0) 
If Not IsError(t) Then 
    Worksheets("SPECSHEET").Cells(3, 5).Value = Worksheets("CONTACT").Range("B" & t) 
Else 
    Worksheets("SPECSHEET").Cells(3, 5).Value = "Not Found" 
End If 

Es verwendet die Tabellenfunktion MATCH(), um die Zeile zu finden und gibt dann den Wert in Spalte B dieser Reihe. Wenn es nicht gefunden wird, gibt es Not Found zurück.

+0

Danke Scott, perfekt! – Ida

+0

@Ida bitte als korrekt markieren, indem Sie auf das grau/grüne Häkchen bei der Antwort klicken. Es ist etwas, was nur du tun kannst. –

+0

Rechts. Ich habe versucht, auf die Pfeile zu klicken: P Tipp genommen, schaue jetzt intro auf diese Seite;) Danke – Ida

Verwandte Themen