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

Vektor schnell in sheet kopieren

Vektor schnell in sheet kopieren
28.10.2005 08:55:59
Tino
Hi,
ich suche nach einer Möglichkeit schnell Daten von einem Vektor in einen Sheet zu kopieren. Die einfachste Lösung ist über eine loop, also
for i = 1 to ...
cells(i,1)=...
next i
Sehr langsam, da x-mal auf den sheet zugegriffen werden muss.
Eine andere Möglichkeit ist den Vektor an eine Funktion weiterzugeben. Die Funktion kann dann über CTRL+SHIFT+ENTER (oder FunctionArray in VBA) expandiert werden. Das läuft bedeutend schneller (zumindest für sehr grosse Vektoren aber nicht für kleine).
Eine dritte Möglichkeit ist den Vektor in die Zwischenablage zu kopieren, den PC eine Range ausrechnen zu lassen und dann die Zwischenablage in die Range zu kopieren (ich hoffe, dass das bedeutend schneller ist, da nur einmal über Range auf den Sheet zugegriffen werden muss). Das Problem ist, wie bekomme ich den Vektor in die Zwischenablage (es scheint nur mit string Werten zu funktionieren aber nich mit Arrays).
An anderen Lösungen für dieses Problem bin ich natürlich auch sehr interessiert.
Danke
Tino

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vektor schnell in sheet kopieren
28.10.2005 09:11:30
MichaV
Hallo,
hm, weiß nicht genau, ob Du mit Vektor Datenfelder meinst.
Dann wäre die einfachste Möglichkeit diese:
(Arr ist ein zweidimensionales Datenfeld.)
Range(Cells(1,1),Cells(Ubound(Arr,1),Ubound(Arr,2))=Arr
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: Vektor schnell in sheet kopieren
28.10.2005 10:55:41
Tino
Ok, Danke ich probiere es mal aus. Lass dich wissen, ob es schneller ist.
danke fuer die Hilfe.
Tino:)
AW: Vektor schnell in sheet kopieren
28.10.2005 11:00:55
Tino
Hi, ich glaube nicht, dass es funktioniert. Di range nimmt nur den ersten Wert im Vektor. Hier den code, den ich benutze

Sub fast()
Dim vector(1 To 10)
Dim timenow As Double
timenow = Now
For z = 1 To 100
For i = 1 To 10
vector(i) = i
Next i
Range(Cells(1, 1), Cells(10, 1)) = vector
Next z
timenow = Now - timenow
Cells(1, 2) = Format(timenow, "hh:mm:ss")
End Sub

Anzeige
AW: Vektor schnell in sheet kopieren
28.10.2005 11:22:16
Thomas
Hi Tino,
versuch's mal in etwa so ...


Option Explicit
Sub t()
    Dim a$(3)
    a(0) = "Heute"
    a(1) = "ist"
    a(2) = "schon"
    a(3) = "Freitag"
    Range("A1:D1") = a
    Range("A1:A4") = Application.WorksheetFunction.Transpose(a)
End Sub


Gruss
Thomas
Risi Thomas Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer

Anzeige
AW: Vektor schnell in sheet kopieren
28.10.2005 11:29:21
MichaV
Hallo,
entweder mit Transpose (siehe Thomas, obwohl es da Einschränkungen gibt!) oder Du definierst ein 2D- Datenfeld, denn die Excel- Tabelle ist auch ein 2D- Feld:

Dim vector(1 To 10, 1 To 1)
Dim timenow As Double
timenow = Now
For z = 1 To 100
For i = 1 To 10
vector(i,1) = i
Next i
Range(Cells(1, 1), Cells(10, 1)) = vector
Next z

Gruß- Micha
PS: Rückmeldung wäre nett.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige