vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Excel zu langsam 
Autor: Kai
Datum: 19.04.02 14:05

Hi ! Ich habe folgendes Problem: In meiner VB-Anwendung empfange (über serille Schnittstelle) jede Sekunde ein Datenpaket (65 Bytes: Integer und Byte) . Diese Daten möchte ich in Excel-Tabellen ablegen.
Das Problem ist nur, dass das Öffnen einer Excel-Datei, Speichern der Daten und das Sichern der Datei zu lange dauert!!!
Also:
Ich starte mit "Set excelApp New Excel.Application" eine neue Excel-Application. (Dies mache ich schon beim Programmstart)
Mit "Set excelBook excelApp.Workbooks.Add" öffne ich ein neues Workbook und mit "Set excelSheet excelBook.Worksheets(1) verwende ich das erste Workssheet des Workbooks.
So, mit dem Befehl "excelSheet.Cells(X, Y) = Datablock(Q)" werden die einzelnen Daten in jede einzelne Zelle geschrieben. (ich verwende With und End With)
(X = Row, Y = Column, Q = Index des Datenblocks)
Nachdem ich die Daten in das Excel-File geschrieben habe, speichere ich diese Änderungen (zur Sicherheit).
Wenn beispielsweise 1000 Datenblöcke in dem Excel-File gesichert sind öffne ich ein neues Wookbook.

Timings:

- Für das Speichern der Datei benötigt VB so ca. 100 bis 200 ms.
- Für das Schreiben der Daten (65 Bytes) in die Datei benötigt VB ungefähr 100 ms.
- Für das Öffnen eines neuen Workbooks benötigt VB auch noch so ca. 100 bis 200 ms.

Das bedeutet, der allgemeinen Ablauf (Daten in die Datei schreiben und Datei sichern) dauert so 200 bis 300 (manchmal auch 400) ms.
Da ich jede Sekunde ein Datenpaket bekomme, ist das schon sehr klapp!
Aber nach beispielsweise 1000 Datenblock-Einträgen (1000 * 65 Bytes) öffne ich zusätzlich noch ein neues Workbook (das alte Workbook schließe ich) -> Das dauert dann bis zu 500 ms(manchmal auch etwas länger).
Da sich Windows ja manchmal selbständig macht (benutzt die Festplatte) und der User auch noch einige Buttons im VB-Programm drücken kann, sind 500 ms (machmal auch weniger) Zeit-Reserve zu wenig!

Meine Frage nun endlich:
Wie kann man das schneller machen??

Meine Versuche die Exceldatei-Bearbeitung zu beschleunigen:
- Die Excel-Application beim Programmstart schon starten
- With und End With verwenden

Meine Vorschläge für das Problem:
- Eine Rehen (Row) von Daten auf einmal in das Excel-File schreiben, d. h. nicht Zelle für Zelle
Geht das und Wie????????????
- Die Daten erst in Text-Files ablegen und nachdem alle Datenblöcke empfangen worden sind, die Text-Files zu Excel-Files konvertieren.
Diese Variante ist wahrscheinlich schneller und sicherer, aber etwas unschön!!

Also, wer noch ein paar Ideen hat. Ich bin ratlos!!

Verwendete Komponenten:
- VB 5.0 (Professional)
- Excel 9.0
- Windows 98 SE
- Prozessor: Intel Celeron 1000 MHz


mfg

Kai
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Excel zu langsam46Kai19.04.02 14:05
Re: Excel zu langsam393unbekannt19.04.02 18:34
Re: Excel zu langsam33Kai22.04.02 09:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel