Anzeige
Archiv - Navigation
320to324
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
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array aus einem String heraus befüllen

Array aus einem String heraus befüllen
14.10.2003 18:25:05
Frank
Hallo hilfreiche Forumsleser,

ich habe ein Problem mit einer Konsolidierungsfunktion in VBA.

Bisher habe ich mir die Namen der einzelnen Blätter mittels VBA ausgelesen und diese mitsamt dem Bereich in einen String geschrieben.

Die VBA-Konsolidierungsfunktion benötigt nun aber einen Array. Das Problem ist, dass die Funktion sowohl unter Excel XP, als auch unter Excel 97 laufen muß.

Ich hoffe Ihr könnt mir weiterhelfen. Hier mal auszugweise der Code:
(wenn ich den Code so ablaufen lasse erhalte ich immer den "Laufzeitfehler '1004' Anwendungs oder Objektdefinierter Fehler"...)


j = ActiveWorkbook.Worksheets.Count
For i = 2 To j

Name = wb.Worksheets(i).Name

Kette = Kette & """'" & WBName & "\[zusammenfassung.xls]" & Name & "'!R31C19:R101C58"","

Next i

Kette = Right(Kette, Len(Kette) - 1)
Kette = Left(Kette, Len(Kette) - 2)

wb.Worksheets(1).Select
Range("S31").Select

Selection.Consolidate Sources:=Array(AKette), Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False


Wie schon geschrieben. Ich hoffe, dass ihr mir weiterhelfen könnt...
Herzlichen Dank für Eure Mühen im voraus

Frank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array aus einem String heraus befüllen
14.10.2003 18:39:46
Hans W. Hofmann
So kann das nicht gehen Aus String kannst Du keinen Array bilden...
Schlag nach unter Split.
Für XL97 musst Du allerdings die Split-Funktion nachbauen.
Da liegt Code in der KB bei MS - nachlesen.

Gruß HW
AW: Array aus einem String heraus befüllen
14.10.2003 19:28:03
Boris
Hi Frank,

ich bin nun nicht der VBA-Fachmann, denn ich halte es lieber mit den Formeln - allerdings haben wir seinerzeit eine - wie ich finde - geniale Formellösung gefunden, um aus einem String ein Array zu generieren.
Es war das Excel4-Macro AUSWEERTEN von Nöten - in VBA wohl "Evaluate".

Schau dir das hier mal an - da hab ich den ganzen Thread nochmal zusammengefasst. Vielleicht kannst du es für VBA verwenden.

http://forum.myphorum.de/read.php?f=3040&i=23966&t=23966

Grüße Boris
Anzeige
AW: Array aus einem String heraus befüllen
15.10.2003 10:46:43
Frank
Danke für Eure Mühen,

allerdings konnte mir das noch nicht richtig weiterhelfen, da ich die Umsetzung per VBA lösen muß.

Soweit bin ich mittlerweile:

k = 0
j = ActiveWorkbook.Worksheets.Count
For i = 2 To j

Name = wb.Worksheets(i).Name

Kette = " '" & WBName & "\[zusammenfassung.xls]" & Name & "'!R31C19:R101C58"
AKette(k) = Kette
k = k + 1
Next i

wb.Worksheets(1).Select
Range("S31").Select

Selection.Consolidate Sources:=Array(AKette), Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False


Wobei ich AKette als Array dimensioniert habe. Die einzelnen Tabellenblätter stehen nun auch schön in den einzelnen Arrayfeldern.
Allerdings erhalte ich jetzt an der Stelle "Selection.Consolidate Sources..." einen "Laufzeitfehler '1004' Anwendungs- oder objektdefinierter Fehler".

Offensichtlich bin ich zu doof, dieses Array in der Konsolidierungsformel einzufügen. Was mache ich falsch...

Ich hoffe ich könnt mir nochmal weiterhelfen...
Danke im voraus

Frank
Anzeige
Habe die Lösung gefunden
15.10.2003 17:07:34
Frank
Danke an alle die sich hier Mühe gegeben haben.

Zwar haben Eure Hinweise mich nicht zur Lösung gebracht, aber ich habe es in der Zwischenzeit zum Laufen bekommen.

Lösung: Ein falsch eingefügtes Leerzeichen stand der Erreichung des Ziels im Weg...

Trotzdem Danke an Alle
Frank

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige