Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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

nur ein kleines Problem

nur ein kleines Problem
26.01.2009 17:38:00
Marco
Guten abend liebe Excel Freunde,
ich möchte lediglich einen Bereich eines Datenfeldes ansprechen. Bekomme es mit datenfeld(2,1) nur auf einzelne Werte des Datenfeldes hin. Möchte aber auch ganze Spalten oder Zeilen ansprechen können. Oder noch besser im Stile von (2 To 5, 1 To 3).
Gibts da eine möglichkeit?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur ein kleines Problem
26.01.2009 17:52:00
Tino
Hallo,
Dim meAr
meAr = Range("A1:E10")
Und schon hast Du eine Area mit 10 Zeilen und 5 Spalten.
Gruß Tino
oder so
26.01.2009 17:55:31
Tino
Hallo,
im ersten Beispiel fängt die Area bei eins an, in diesem bei 0 ist aber genau so groß.
Dim meAr(4, 9)
Gruß Tino
AW: oder so
26.01.2009 18:11:00
Marco
Hallo,
so meine ich das nicht! Ich möchte eine Variable in einen Teil einer anderen Variable schreiben. Keine Daten in irgendwelchen Sheets. Ich programmiere nur in Userforms.
AW: oder so
26.01.2009 18:17:01
Tino
Hallo,
Dim meAr(4, 9)
Ist nicht in Sheets, dass ist eine leere Matrix vom Typ Variant die noch keine Daten hat,
die musst Du erst befüllen.
Gruß Tino
Anzeige
AW: oder so
26.01.2009 18:29:34
Tino
Hallo,
auch aus einer Combobox oder Listbox kannst du die Daten direkt an eine Matrix geben,
die sofort die größer des Steuerelements annimmt.
Beispiel.

Dim meAr
Dim A As Long, B As Long
meAr = ComboBox1.List
Debug.Print LBound(meAr, 1)
Debug.Print UBound(meAr, 1)
Debug.Print LBound(meAr, 2)
Debug.Print UBound(meAr, 2)
For A = LBound(meAr, 1) To UBound(meAr, 1)  'Zeilen
For B = LBound(meAr, 2) To UBound(meAr, 2) 'Spalten
Debug.Print meAr(A, B)
Next B
Next A


Gruß Tino

AW: oder so
26.01.2009 23:10:00
Daniel
Hi
mach es doch einfach mit einer Schleife.
solange du mit Variablen arbeitest und nicht mit Excelobjekten wie Cells gibt es da auch kein Geschwindigkitsproblem.
Gruß, Daniel
Anzeige
AW: oder so
27.01.2009 09:22:00
Marco
Hallo alle zusammen,
scheint doch nicht so klein zu sein das Problem. Ich zeigs mal an meinem konkreten Beispiel. Ich frage via SQL eine Variable mit der ADOrec ein. Bereits hierfür muss ich Schleifen verwenden. Dann habe ich aber meine Tabelle im Arbeitsspeicher und möchte alle weiteren Zugriffe auf die Tabelle auf das auslesen dieser Variable verwenden. Nun möchte ich nur einige ausgesuchte Spalten in eine neue Variable schreiben. Mit zwei for Schleifen kein Problem, aber for Schleifen sind langsam und die Tabelle könnte sehr groß werden.
Beispiel:
redim var1 (3,3)
var1=( Karl, Schmidt, 53
Josef, Wagner, 35
Katrin, Schneider, 17)
' Die erste Spalte ist der Vorname, die zweite der Nachname und die dritte das Alter
' Nun soll zur Übergabe in ein Listenfeld nur der Vor- und Nachname in der Variable stehen
redim var2 (3,2)
var2=(Karl, Schmidt
Josef, Wagner
Katrin, Schneider)
'wie kann ich ohne Schleifen die Zuweisung vornehmen?
Dinge wie
var2 = var1(1to3, 1to2) funktionieren nicht!
Bei Matlab ging das mit folgender Syntax (1:3,1:2).
Wenn ihr noch zusätzlich wüßtet, ob man ganze Spalten ansprechen kann wäre das super! Bei Matlab ging das mit einem :. Gibt es was vergleichbares in vba?
Anzeige
keine Ahnung..., (Frage offen)
27.01.2009 16:10:00
Tino
Hallo,
ich kenne es nur mittels Schleife.
Wüsste jetzt auch nicht, wie dass funktionieren sollte.
Gruß Tino
AW: oder so
27.01.2009 22:56:38
Daniel
Hi
ohne Schleife ginge es vielleicht darüber , daß du die Daten nach Excel schreibst und dann wieder einliest:

redim var1 (1 to 3, 1 to 3)
var1=( Karl, Schmidt, 53
Josef, Wagner, 35
Katrin, Schneider, 17)
redim Var2(1 to 3, 1 to 2)
Range("A1").resize(3, 3) = Var1
Var2 = Range("A1").Resize(3, 2)
Range("A1").currentregion.ClearContents 'Daten aufräumen, ordnung muss sein


Gruß, Daniel

AW: oder so
28.01.2009 07:43:02
Marco
Hi Daniel,
danke für Deine Mühe, aber die Verwendung von Excelblättern wird durch die Schreib und Lesevorgänge auch zu langsam. Ich hab das Einlesen nun über eine Schleife gemacht. Bin mal gespannt wie sich das auswirkt wenn die Tabelle wirklich groß geworden ist.
Gruß Marco
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige