Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array in Tabelle

Array in Tabelle
21.03.2007 18:29:15
Ingo
Hallo Leute,
ich hab' da mal 'ne Frage :
Gegeben ist eine Tabelle mit x Zeilen und 35 Spalten.
Die lese ich in ein Array ein
Arr_Mitarbeiter() = wks_startdaten.UsedRange.Value
In einer anderen Tabelle brauche ich nur Daten aus der ersten Spalte
With wks_übersicht
Set Bereich = _
.Range(.Cells(1, 1), .Cells(UBound(Arr_Mitarbeiter, 1), 1))
Bereich.Value = Arr_Mitarbeiter()
.Columns(1).AutoFit
End With
Das klappt scheinbar nur mit der ersten Spalte.
Wenn ich NUR die Werte aus z.B. der 19. Spalte benötige, lasse ich momentan
eine Schleife 'drüberlaufen.
Sehe ich nur die richtige Schreibweise nicht oder funktioniert
Bereich.Value = Arr_Mitarbeiter(?19?) einfach nicht ?
Danke für eine Hilfestellung
Gruß, Ingo

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

Betreff
Datum
Anwender
Anzeige
AW: Array in Tabelle
21.03.2007 23:59:25
Erich
Hallo Ingo,
um eine Schleife wirst du da nicht herumkommen.
Schneller als das direkte Schreiben in die Tabelle in einer Schleife ist das hier:
(19. Spalte der Matrix soll in Spalte C)

With wks_übersicht
.Range(.Cells(1, 1), .Cells(UBound(Arr_Mitarbeiter, 1), 1)) = Arr_Mitarbeiter()
.Columns(1).AutoFit
ReDim ArrMA_19(1 To UBound(Arr_Mitarbeiter, 1))
For ii = 1 To UBound(Arr_Mitarbeiter, 1)
ArrMA_19(ii) = Arr_Mitarbeiter(ii, 19)
Next ii
.Range(.Cells(1, 3), .Cells(UBound(ArrMA_19), 3)) _
= WorksheetFunction.Transpose(ArrMA_19)
ReDim ArrMA_19(0)
.Columns(3).AutoFit
End With
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Array in Tabelle
22.03.2007 12:57:00
Ingo
Hallo Erich,
danke für die Hilfe.
Habe ich soweit umgesetzt klappt natürlich ;-)
Du hast aus meinem Beispiel das Set Bereich gestrichen und Range direkt angesprochen
.Range(.Cells(1, 1), .Cells(UBound(Arr_Mitarbeiter, 1), 1)) = Arr_Mitarbeiter()
Ist das tatsächlich für die Geschwindigkeit von Bedeutung oder
doch eher egal ?
Gruß, Ingo
AW: Array in Tabelle
22.03.2007 13:17:54
Erich
Hi Ingo,
danke für deine Rückmeldung!
Die "Bereich"-Defnition habe ich rausgenommen, weil "Bereich" nur einmal verwendet wird.
VBA muss dann nicht ein weiteres Objekt verwalten und dafür Arbeitsspeicher verbrauchen.
Auf die Laufzeit dürfte sich das kaum auswirken - es sei denn, das Ganze läuft x-mal in einer Schleife.
Ich tendiere zu einer gewissen "Faulheit", die sich (hier mal) positiv auswirkt: Keine Zeile mehr als nötig.
Codes werden dadurch besser überschaubar und sprechender.
(Nebenbei: Die Objektbezeichnung "Bereich" war nicht wirklich sprechend - es gibt oft viele Bereiche... :-))
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Array in Tabelle
22.03.2007 13:36:00
Ingo
Hallo Erich,
ok, soweit verstanden.
Das einzige was an Deinen Antworten ein büschn nervt ist der Umstand,
dass ich anschließend meine ganzen Module umstricke ;-))
Manchmal ist man einfach Betriebsblind geworden und es braucht jemanden,
der einem die Scheuklappen wieder von den Augen nimmt.
Herzlichen Dank für Deine Mühe und schönes WE.
Ingo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige