Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Range Bereich koperen

Range Bereich koperen
22.07.2005 15:44:54
Frank
Hi,
ich versuche im Programmbeispiel das for each... zu umgehen,
es also schneller zu machen!
Aber etwas funktionert nicht. "Laufzeitfehler 458, Variable ..nicht unterstützen Typ der Automatisierung".
Kopiere ich eigentlich in den Variant die Range-Werte, also erzeuge ich einen
Variant Array oder erzeuge ich eine Reihe von Range-Objekten und VBA konvertiert es...? Ich glaub ich habe einen Knoten im Hirn?
Was muss ich beachten oder kann ich nicht die "for each loop" durch z.B.: CopyMemory ersetzen?
Option Explicit
Dim Arr As Variant

Private Function CreateRangeArray(ByVal WorksheetName As String, _
ByVal WhichColumn As Long) As Variant
Dim CurrentRange As Range
Select Case WhichColumn
Case Is <= 0
GoTo ExitFunction
End Select
With Application.Worksheets(WorksheetName)
CreateRangeArray = .Range(.Columns(WhichColumn).Rows(2), _
.Columns(WhichColumn).EntireColumn.Find(What:=vbNullString))
End With
ExitFunction:
End Function


Private Sub RunMe()
Dim Element As Variant
Dim a() As Variant
Dim i As Long
Arr = CreateRangeArray("Tabelle1", 3)
ReDim a(UBound(Arr))
Call kernel32.CopyMemory(a(0), VarPtr(Arr), UBound(Arr) + 1)
MsgBox a(1)
Exit Sub
ReDim a(UBound(Arr))
For Each Element In Arr
a(i) = Element
i = i + 1
Next
MsgBox a(3)
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Range Bereich koperen
22.07.2005 16:03:25
Leo
Hi,
Dim arr as Variant
arr = tabelle1.deinRange
tabelle2.deinRange = arr
mfg Leo
AW: Range Bereich koperen
22.07.2005 16:15:39
Frank
Hallo
gute Idee aber ich hätte vielleicht sagen sollen das ich nicht den Bereich
zurückkopieren will, sondern ich daraus einen Variant-Array machen will um ihn dann
in an eine bestehende Liste (Listbox) anzufügen oder ..... Also koperen nicht nur von Range nach Range. Weil sonst hätte ich den Aufwand nicht treiben müssen.
Gruss
Frank
AW: Range Bereich koperen
22.07.2005 16:39:52
Leo
Hi,
eine genaue Frage ist schon die halbe Antwort.
dim arr as variant
arr = tabelle1.deinRange
Listbox1.List = arr
mfg Leo
Anzeige
AW: Range Bereich koperen
22.07.2005 17:59:57
Frank
Hallo,
ja ich stehe etwas auf dem Schlauch, darum bin ich auch heute nicht so schnell!
Danke!
Gruss
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige