Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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 Formulalocal und Variable

Sverweis Formulalocal und Variable
25.06.2018 10:30:34
Bastian
Hallo zusammen,
ich stehe vor einer Aufgabe, die ich nicht bewältigt bekommen.
Ich habe eine Bestandstabelle mit fast 20000 Einträgen, ein Arbeitsblatt, welches ab Zeile 25 Daten per SVerweis aus der Bestandstabelle einpflegt. Diese werden aber vorab gefiltert, sodass nur jeweils 50 - 70 Einträge bearbeitet werden. Es funktioniert, bis auf den Sverweis.
Ich schaffe es aber nicht eine Variable in den SVerweis zu bringen.
Hier mein Beispiel natürlich ohne den Zähler eingesetzt. Es soll A12 durch A & i ersetzt werden, _
mir fehlt dazu aber die Syntax:

Public Sub getdata()
Dim last As Integer
Dim i As Integer
last = ThisWorkbook.Sheets("Datenbestand").Cells(20000, 1).End(xlUp).Row
On Error Resume Next
For i = 25 To last
If Sheets("Arbeitsblatt").Rows(i).Hidden = False Then
ThisWorkbook.Sheets("Arbeitsblatt").Range("I" & i).FormulaLocal = "=SVERWEIS( _
A12;Datenbestand!A:L;11;FALSCH)" 'Alternativ über VLookup, bringt aber auch ohne Zähler    _
nur eine leere Zeile
' ThisWorkbook.Sheets("Arbeitsblatt").Range("I" & i) = Worksheet.Function. _
VLookup([a12], Sheets("Datenbestand").[A:L], 11, False)
End If
Next i
End Sub

Vielen Dank im Voraus.

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

Betreff
Datum
Anwender
Anzeige
AW: Sverweis Formulalocal und Variable
25.06.2018 11:01:46
Daniel
Hi
solltest du die letzte Zeile für die Formel nicht besser im Blatt "Arbeitsblatt" ermitteln?
beim Eintragen der Formel kann man sich das Einfügen der Variablen sehr oft ersparen, wenn man auf die Z1S1-Schreibweise für Zellbezüge zurückgreift.
außerdem sollte man ausnutzen, dann man die Formeln in alle betroffenen Zellen in einem Schritt eintragen kann und es nicht notwendig ist, per Schleife jede Zelle einzeln zu befüllen.
dim last as long
with Thisworkbook.Sheets("Arbeitsblatt")
last = .Cells(20000, 1).End(xlUp).Row
.Range("I25:I" & last).SpecialCells(xlcelltypevisible).FormulaR1C1Local = _
"=SVerweis(ZS1;Datenbestand!S1:S12;11;FALSCH)"
end with
wenn du die Werte als "harte" Werte eintragen willst, dann so.
die []-Schreibweise für Zellbezüge sieht zwar elegant aus, ist aber unpraktisch, weil sie keine Verwendung von Variablen zulässt. Besser es ist, Einzelzellen mit Cells() und Zellbereiche mit Range() anzusprechen:
...
With thisworkbook.Sheets("Arbeitsblatt")
on error resume next
for i = 25 to last
If Sheets("Arbeitsblatt").Rows(i).Hidden = False Then
.Cells(i, 9).value = worksheetfunction.VlookUp(.Cells(i, 1), _
ThisWorkbook.Sheets("Datenbestand").Range("A:L"), 11, False)
end if
next
end with
on error goto 0

Gruß Daniel
Anzeige
AW: Sverweis Formulalocal und Variable
26.06.2018 12:02:05
Bastian
Danke Daniel,
aber leider führen beide Varianten nicht zum Erfolg.
Die erste Variante mit FormulaR1C1... zwingt meinen PC in die Knie. Beide Kerne sind zu ca. 50 % Ausgelastet und nach ungefähr einer Stunde habe ich es abgebrochen. Er hat zwar einige Zeilen bearbeitet, auch richtig, aber leider nicht praxistauglich.
Und die zweite Variante schreibt einfach nichts in die Zelle.
MfG
AW: Sverweis Formulalocal und Variable
26.06.2018 12:29:51
Daniel
Hi
Um dir da weiterhelfen zu können, müsste ich deine Dateien, deren Aufbau und den Code besser kennen.
Wieviele Formeln müssen denn eingetragen werden und wie groß ist der Datenbereich des Sverweises?
Bei großen Datenmengen kann es sinnvoll sein, die Sverweistabelle nach der ersten Spalte zu sortieren und den SVerweis mit 4. Parameter = Wahr zu verwenden. Der ist deutlich schneller.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige