Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SVerweis als VBA

SVerweis als VBA
12.08.2015 17:37:25
Ali
Hallo zusammen,
ich hoffe ich bin hier richtig. Die Anfrage wurde sicherlich schon 1000 gestellt, aber finde die für mich angepasste Lösung nicht.
ich möchte einen SVerweis als VBA programieren. Leider funktioniert es noch nicht 100 %.
Folgenden Code habe ich per Macroaufzeichnung gebastet.

Sub Makro5()
' Makro5 Makro
ActiveCell.FormulaR1C1
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C4").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C5").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C7").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C8").Select
Application.CutCopyMode = False
End Sub


Jetzt möchte ich nicht für jede Zeile die Formel Neu schreiben sondern das immer die nächste Zeile genommen wird und zwar von C1 runter bis beispiel C500.
Könnt Ihr mir helfen, wie ich die Schleife dort reinbekomme?
Vielen Dank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVerweis als VBA
12.08.2015 17:44:53
AlexG
Hallo Ali,
der Makrorecoder zeichnet immer das Selktieren der Zellen mit auf, das brauchst du aber nicht.
In diesem Fall anstelle ActiveCell einfach den Bereich setzten.
Range("C1:C500").FormulaR1C1 = "=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Gruß
Alex

AW: SVerweis als VBA
12.08.2015 18:16:17
Ali
Hallo,
super danke für die Antwort.

Sub Makro5()
' Makro5 Makro
Range("C1:C50").FormulaR1C1 = "=VLOOKUP(RC[1],'[Test Datei.xlsx]Tabelle1'!C1:C2,2,FALSE)"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C4").Select
Application.CutCopyMode = False
End Sub


es funktioniert super, allerdings funktioniert das kopieren und einfügen nicht mehr. Grund der ganzen Formel war das ich einen Liste habe und einen SVERWEIS eifügen wollte, weil mir die Berechnung viel zu lange gedauert hat, hatte ich überelgt das ganze als VBA Code einzutragen, danach das Ergebnis zu kopieren und als Wert wieder einfügen zu lassen. Das hat auch alles super geklappt und war super schnell, nun funktioniert das Copy Past nicht mehr. Bringt das überhaupt was mit der Schnelligkeit? also anstatt den Sverweis als Formel diesen als VBA zu hinterlegen.
LG

Anzeige
SVerweis Bereich einschränken
12.08.2015 18:52:45
AlexG
Hallo Ali,
du solltest lieber deinen Bereich eingrenzen. Und nicht die ganzen Spalten als Matrix angeben.
VBA wird hier sicherlich nicht schneller sein, wenn der Sverweis eingetragen und das Ergebnis als Festwert übernommen wird.
Gruß
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige