Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1548to1552
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
Wörter zählen
08.04.2017 13:08:53
Manuel
Hallo liebes Forum,
ich hab hier ein VBA-Skirpt mit dem Wörter im markierten Bereich zählen kann. Diesen verstehe ich aber nicht richtig. Kann mir jemand das gut erklären.
Hier kommt der Code:

Sub WorteZählen()
Dim Zelle As Range
Dim Bereich As Range
Dim s As String
Dim i As Integer
Sheets("Tabelle1").Activate
Set Bereich= Range("A1:A4")
For Each Zelle In Bereich
s= Trim(Zelle.Text)
Do While Instr(s, " ") >0
i= i+1
s= Trim(Right(s, Len(s)- Instr(s, " ")))
Loop
i= i+1
Next t
MsgBox "Wörter im Zielbereich:" &i
End Sub

So was macht hier nun Trim und Instr? Wozu brauch ich Len(s).

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wörter zählen
08.04.2017 13:26:02
Hajo_Zi
den Fehler bei Next habe ich beseitigt.
Option Explicit
Sub WorteZählen()
Dim Zelle As Range
Dim Bereich As Range
Dim s As String
Dim i As Integer
Sheets("Tabelle1").Activate
Set Bereich = Range("A1:A4")
' Schleidfe über den Bereich
For Each Zelle In Bereich
' schreibe die aktuelle Zelle auf die Variable
s = Trim(Zelle.Text)
' Schreibe üvber die Zelle solange eine Leerstele vorhanden
Do While InStr(s, " ") > 0
' falls Leerstelle vorhanden erhöhe die Wortanzahl um 1
i = i + 1
'Trenne das letzte Wort ab und es geh bei Do weiter
s = Trim(Right(s, Len(s) - InStr(s, " ")))
Loop
' erhöhe Wortanzahl um 1
i = i + 1
' nächste Zelle
Next Zelle
MsgBox "Wörter im Zielbereich:" & i
End Sub


Anzeige
AW: Wörter zählen
08.04.2017 14:14:41
Manuel
erstmal danke für die Erklärung. Ich Checks aber immer noch nicht.
Was macht Trim? Es entfernt alle Leerzeichen und die variable s hat dann den Wert 4 oder wie?
Dann Instr. Was für einen Wert liefert mir die Funktion? und dann nochmal das s? Wozu? Das Wort ganz rechts wir abgetrennt, aber wozu dann Len(s) - Instr(s, " ").
AW: Wörter zählen
08.04.2017 14:16:51
Hajo_Zi

Trim entfernt Leerstellen am Ende und Anfang, Instr sucht die Position von " ", falls 

Gruß Hajo
AW: Wörter zählen
08.04.2017 14:24:55
Manuel
hey hajo,
ich glaube das funktioniert so:
mit s= trim(zelle.text) ermittle ich die Anzahl aller Textzeichen inklusive Leerzeichen.
dann such die Leerzeichen mit Instr und ihre Position. Nun entferne ich nochmal mit Trim von der Zelle rechts ausgehend bis zum Leerzeichen das Wort. Schleife beginnt dann von vorne.
Anzeige
AW: Wörter zählen
08.04.2017 15:36:38
Daniel
Hi
mit Instr sucht du immer die Postion des nächsten Leerzeichens im Text.
das Right(...) schneidet dann die Zeichen vor dem Leerzeichen ab und das Trim löscht dann das leerzeichen am Anfang.
Das wiederholst du so lange, bis keine Leerzeichen mehr im Text drin ist.
so wie du das machst, ist es ziemlich aufwendig.
es gibt einfachere Methoden, um die Leerzeichen und damit die Wörter zu zählen:
 For Each Zelle In Bereich
s= Worksheetfunction.Trim(Zelle.Text)
if len(s) > 0 then i = i + len(s) - len(Replace(s, " ", "")) + 1
next
das Worksheetfunction.Trim entfernt alle Leerzeichen am Anfang und Ende, sowie alle mehrfach Leerzeichen im Text, so dass zwischen jedem Wort nur ein Leerzeichen steht.
Gruß Daniel
Anzeige
AW: Wörter zählen
08.04.2017 17:19:02
Manuel
Hallo,
jo habe es nun verstanden danke!

100 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige