Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Code optimieren

Forumthread: VBA Code optimieren

VBA Code optimieren
11.04.2006 08:37:36
MichaK
Hallo zusammen,
ich habe folgenden VBA Code in Anlehnung an die Hilfe von Franz S https://www.herber.de/forum/messages/753887.html (dort gleiches Problem - aber kürzere Abfrage)geschrieben. Leider bekomme ich die Fehlermeldung "Nicht genügend Speicher" Laufzeitfehler 7. Wie kann ich den nachstehenden Code optimieren?

Private Sub CommandButton4_Click()
Dim WKS As Worksheet
Ana = "[ChemischeAnalysen.xls]chem.Analysen!R2C2:R9980C49"
Set WKS = ThisWorkbook.Sheets("A5QT") 'Tabelle in der Formel eingefügt werden soll
WKS.Range("R42").FormulaR1C1 = _
"=IF(ISBLANK(R[-17]C[-17]),"""",R[-17]C[-17]&"" A="")&IF(ISERROR(VLOOKUP(R[-17]C[-17],Ana,42,FALSE)),"""", (VLOOKUP(R[-17]C[-17],Ana,42,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-17]C[-17]),"""","" B="")&IF(ISERROR(VLOOKUP(R[-17]C[-17],Ana,44,FALSE)),"""", (VLOOKUP(R[-17]C[-17],Ana,44,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-17]C[-17]),"""","" C="")&IF(ISERROR(VLOOKUP(R[-17]C[-17],Ana,46,FALSE)),"""", (VLOOKUP(R[-17]C[-17],Ana,46,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-17]C[-17]),"""","" D="")&IF(ISERROR(VLOOKUP(R[-17]C[-17],Ana,48,FALSE)),"""", (VLOOKUP(R[-17]C[-17],Ana,48,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-15]C[-17]),"""",R[-15]C[-17]&"" A="")&IF(ISERROR(VLOOKUP(R[-15]C[-17],Ana,42,FALSE)),"""", (VLOOKUP(R[-15]C[-17],Ana,42,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-15]C[-17]),"""","" B="")&IF(ISERROR(VLOOKUP(R[-15]C[-17],Ana,44,FALSE)),"""", (VLOOKUP(R[-15]C[-17],Ana,44,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-15]C[-17]),"""","" C="")&IF(ISERROR(VLOOKUP(R[-15]C[-17],Ana,46,FALSE)),"""", (VLOOKUP(R[-15]C[-17],Ana,46,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-15]C[-17]),"""","" D="")&IF(ISERROR(VLOOKUP(R[-15]C[-17],Ana,48,FALSE)),"""", (VLOOKUP(R[-15]C[-17],Ana,48,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-13]C[-17]),"""",R[-13]C[-17]&"" A="")&IF(ISERROR(VLOOKUP(R[-13]C[-17],Ana,42,FALSE)),"""", (VLOOKUP(R[-13]C[-17],Ana,42,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-13]C[-17]),"""","" B="")&IF(ISERROR(VLOOKUP(R[-13]C[-17],Ana,44,FALSE)),"""", (VLOOKUP(R[-13]C[-17],Ana,44,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-13]C[-17]),"""","" C="")&IF(ISERROR(VLOOKUP(R[-13]C[-17],Ana,46,FALSE)),"""", (VLOOKUP(R[-13]C[-17],Ana,46,FALSE)))  &"" ""&" & _
"IF(ISBLANK(R[-13]C[-17]),"""","" D="")&IF(ISERROR(VLOOKUP(R[-13]C[-17],Ana,48,FALSE)),"""", (VLOOKUP(R[-13]C[-17],Ana,48,FALSE)))"
End Sub

Danke für die Hilfe
LG Micha
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code optimieren
11.04.2006 14:10:11
Yal
Vielleicht könnstest Du die 9 (neun!) VLookup in eine separate Tabelle hilegen, statt im Coding.
Für die Prüfung IF(ISERROR(... 9 zusätzliche Zellen verwenden: nicht die VLookUp doppelt implementieren, sonst werden sie 2mal berechnet!!!
Und wenn wir dabei sind, solltem die 9 ISBLANK auch auf diese separate Tabelle.
Übrig bleibt im Range("R42") eine -relativ- schlanke Formel, die auf diese 27 Felder zugreifen wird. Und nicht nur schlank, aber auch schnell!
viel erfolg
Yal
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige