Thema Datum  Von Nutzer Rating
Antwort
Rot Zeitaufwand für Makro
22.08.2011 14:25:09 Lexta
Solved
23.08.2011 14:09:38 Gast52285
Solved
23.08.2011 18:56:54 Mawisoft
Solved

Ansicht des Beitrags:
Von:
Lexta
Datum:
22.08.2011 14:25:09
Views:
2649
Rating: Antwort:
 Nein
Thema:
Zeitaufwand für Makro

Hallo

 

Ich mache derzeit eine Arbeitserprobung für eine Ausbildung zum Fachinformatiker und habe ein dickes Buch und eine Aufgabe erhalten um VBA zu erlernen.

Die Aufgabe besteht darin, ein Makro zu schreiben, welches Wortwiederholungen in einem Text zählt und geordnet ausgibt.

Das Programm ist soweit fertig, allerdings ist der Zeitaufwand, trotz Quicksort!, enorm. Ich habe nun getestet welche Abschnitte denn solange brauchen und heraus kam, dass gleich am Anfang das Einlesen des Textes in ein Array mit

 

ReDim Preserve Text(1 To ActiveDocument.Words.Count)
    For j = 1 To Anzahl
      If Len(ActiveDocument.Words(j)) > 2 Then
        Text(j) = ActiveDocument.Words(j)
      End If
    Next

 

diesen Zeitaufwand braucht, der ganze Rest wird unter einer Sekunde abgearbeitet.

Weder ich, noch mein Ausbilder wissen dazu eine schnellere Alternative, sodass ich hier nun fragen möchte, welche Alternativen es denn noch gibt.

Ich vermute ja, dass ActiveDocument.Words() so lange benötigt, da es im Restprogramm nicht nochmal auftaucht, die Frage für mich ist nur: Warum?

 

Hier noch als Zusatzinfo die Seitenanzahl und die benötigte Zeit dafür, jede Seite hat 545 Wörter:

 

Seite     Zeit (s)

1           0,99

2           4,02

3           9,11

4           16,22

5           25,16

6           36,33

7           49,44


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zeitaufwand für Makro
22.08.2011 14:25:09 Lexta
Solved
23.08.2011 14:09:38 Gast52285
Solved
23.08.2011 18:56:54 Mawisoft
Solved