ich möchte eine Selektion als Variable (hier: Suchbereich) benennen und
diese Variable dann in
der Formel SVERWEIS einbinden. Wie bennen ich meine Selektion als
Variable?
hier mein Code:
Dim Suchbereich as Range
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Suchbereich = ?????
ActiveCell.Offset(0, 1).Formula = _
"=VLOOKUP(RC[-6],(Suchbereich),5,FALSE))"
Vielen Dank
Dieter Schiele
Nun, ich würde das Ganze etwas anders lösen.
Ich kenne zwar deine Tabelle nicht, aber versuch es mal
mit folgendem Lösungsansatz:
Sub test_SV()
[B1] = Application.WorksheetFunction.VLookup(Range("A1").Value, _
Range(Range("A2"), ActiveCell.SpecialCells(xlLastCell)), _
5, 1)
End Sub
--
Ich hoffe, dass dir das weiterhilft.
Es liebs Grüessli aus der Schweiz
Monika Weber
Bitte keine Fragen an meine Mail-Adresse. Danke.
------------------------------------------
Microsoft MVP für Excel
http://www.jumper.ch
http://excel.codebooks.de
Nur das kapiere ich einfach nicht!
Bin in Sachen VBA etwas einfach gestrickt.
Kann ich meinen selektierten Bereich nicht in eine Variable benennen und die
dann als Matrix in VLOOKUP verwenden?
Danke
Dieter Schiele
"Monika Weber" <monika...@mvps.org> schrieb im Newsbeitrag
news:#SOlWtjiCHA.1952@tkmsftngp09...
> Vielen Dank Monika für die schnelle Antwort!
Bitte, gern geschehen :-)
> Kann ich meinen selektierten Bereich nicht in eine Variable benennen und
die
> dann als Matrix in VLOOKUP verwenden?
Gegenfrage: Warum willst du denn den Bereich erst in eine Variable
schreiben, wenn du ihn direkt in die Codezeile integrieren kannst?
Das wäre doch überflüssig.
Nehmen wir den Code mal auseinander.
-------
Der Code sieht wie folgt aus:
Sub test_SV()
[B1] = Application.WorksheetFunction.VLookup(Range("A1").Value, _
Range(Range("A2"), ActiveCell.SpecialCells(xlLastCell)), _
5, 1)
End Sub
-------
Erster Schritt: Wollen wir den Code etwas entwirren, indem wir uns
das Ganze mal als Formel ansehen:
=SVerweis(A1, DeinBereich, 5, 1)
-------
=== Zweiter Schritt: Erläuterung ===
[B1] =
Das ist die Zielzelle, wo das Ergebnis reingeschrieben wird.
Application.WorksheetFunction.VLookup
Das ist die VBA-Anweisung für "SVerweis"
(Range("A1").Value, _
Das ist das Suchkriterium (Inhalt von Zelle A1)
Ich hab hier A1 genommen, da ich nicht weiss, wo genau dein
Suchkriterium steht. Das kannst du natürlich abändern.
Range(Range("A2"), ActiveCell.SpecialCells(xlLastCell)), _
Das ist die Matrix, also der Bereich, den du in eine Variable schreiben
wolltest. Sozusagen die Markierung ab Zelle A2, bis zum letzten Eintrag.
5, 1)
Gleich wie in der Formel.
Ausgabe aus der 5. Spalte
1 = Bereich_Verweis (Wahr), also ungenau
Schiele schrieb:
>
> ich möchte eine Selektion als Variable (hier: Suchbereich) benennen und
> diese Variable dann in
> der Formel SVERWEIS einbinden. Wie bennen ich meine Selektion als
> Variable?
Du kannst den markierten Bereich als Bereichnamen definieren und diesen im
SVERWEIS() verwenden (auf die Selektiererei könntst Du vielleicht noch
verzichten):
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveWorkbook.Names.Add Name:="Suchbereich", RefersTo:=Selection
ActiveCell.Offset(0, 1).Formula = _
"=VLOOKUP(RC[-6],Suchbereich,5,FALSE))"
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -