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

Datenprotokoll mit Arrays

Datenprotokoll mit Arrays
10.09.2002 18:54:07
Rafael
Hallo Boardgemeine,

ich habe folgendes Problem: über DDE-Schnittstelle erhalte ich selbstaktualisierende Daten in Tabelle1. Diese Daten möchte ich gerne in Tabelle2 zeilenweise untereinander protokollieren.

´Code Übergabe der einzelnen Messdaten

Messpunkt1 = Tabelle1.Range("B3")
Messpunkt2 = Tabelle1.Range("C3")
Messpunkt3= Tabelle1.Range("D3")
Messpunkt4 = Tabelle1.Range("E3")

´Code Protokoll

Tabelle2.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = Messpunkt1
Tabelle2.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0) = Messpunkt2
Tabelle2.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0) = Messpunkt3
Tabelle2.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0) = Messpunkt4


Die Protokollierung klappt damit hervorragend. Da ich aber eine grosse Zahl von Messstellen (mit jeweils einer ganzen Reihe von Messpunkten) habe, möchte ich gerne die jeweiligen Laufzeiten verkürzen, da die Leistung des Rechners künftig nicht mehr reichen wird.


Statt einzelner Daten sollen statt dessen Arrays übergeben werden.


´Code Übergabe der einzelnen Messdaten als Arrays

Messdaten(3) = Tabelle1.[B3:E3]

So weit, so gut. Beim Protokollieren gibt’s dann aber leider Probleme.


Unter Verwendung des Codes: Tabelle2.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = Messdaten(3)
protokolliert Excel nur jeweils den ersten Parameter in die Zelle.


Als Test, ob überhaupt die richtigen Einzeldaten als Arrays übertragen werden, habe ich zunächst den Code: Tabelle2.Range(Cells(2, 3), Cells(2, 6)) = Messdaten(3)
laufen lassen. In Zeile 2 wird nun das Datenfeld (Array) komplett eingetragen.


Trotz zahlreicher Versuche habe ich aber leider keinen funktionierenden Code in Anlehnung an die beiden oben genannten hinbekommen. Eine Schleife kann ich aus verschiedenen Gründen nicht verwenden, muss also bei einer Lösung unter Verwendung von SpecialCells bleiben.


Vielleicht hat jemand einen Tip oder eine Anregung?
Vielen Dank im voraus!


Rafael



2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datenprotokoll mit Arrays
12.09.2002 12:49:43
mathias r.
Entweder so:

Sub kopier()
Dim messdaten As Variant
Dim iRow As Integer
messdaten = Sheets(1).[a1:c1]
iRow = Tabelle2.Cells(Rows.Count, 3).End(xlUp) + 1
With Sheets(2)
.Range(.Cells(iRow, 1), .Cells(iRow, 3)) = messdaten
End With
End Sub

oder so:

Sub kopi2()
Dim iRow As Integer
iRow = Tabelle2.Cells(Rows.Count, 3).End(xlUp) + 1
Sheets(1).[a1:c1].Copy Sheets(2).Cells(iRow, 1)
End Sub

Nebenbei: Dieser Schritt wird sicher nicht DIE Performancebremse sein. Wenn möglich (und sinnvoll),
Application.Calculation = xlCalculationManual
temporär einschalten und
Application.Screenupdating=false

Anzeige
Re: Datenprotokoll mit Arrays
16.09.2002 10:44:54
Rafael
Prima Tip Mathias,

herzlichen Dank!

Rafael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige