nut 'Application.ScreenUpdating = False'

Status
Niet open voor verdere reacties.

verhaba

Gebruiker
Lid geworden
8 feb 2008
Berichten
79
Hallo
Ik heb hier een kleine routine die het woord telt waar de cursor staat in een word document. Ik vroeg me enkel af waartoe ' Application.ScreenUpdating = False' dient. Weet iemand de reden?
Groetjes.

Code:
Sub TelDitWoord()
Dim Woord As String
Dim teller As Integer
Application.ScreenUpdating = False
    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="Vertrekpunt"
    End With
Selection.Extend
Selection.Extend
Woord = RTrim(Selection)
Selection.ExtendMode = False
Selection.HomeKey Unit:=wdStory, Extend:=wdMove
    With Selection.Find
    .ClearFormatting
    .Text = Woord
    .MatchWholeWord = True
    teller = 0  'Begin te tellen bij nul
    Do While .Execute
    teller = teller + 1
    Loop
    .MatchWholeWord = False
    End With
Selection.GoTo What:=wdGoToBookmark, Name:="Vertrekpunt"
ActiveDocument.Bookmarks("Vertrekpunt").Delete
MsgBox "In deze tekst staat " & teller & " keer '" & Woord & "'."
Application.ScreenUpdating = True
End Sub
 
De cursorbewegingen in deze macro worden dan niet zichtbaar.

Terzijde: die zijn ook allemaal overbodig.
De volgende macro doet precies hetzelfde op een veel eenvoudiger manier.

Code:
Sub woordteller()
  Selection.Expand wdWord
  if Selection<>"" then Msgbox trim(selection) & " komt " & (ActiveDocument.Content.Characters.Count - Len(Replace(ActiveDocument.Content, Trim(Selection), ""))) \ Len(Trim(Selection)) & "keer voor"
  Selection.Collapse
End Sub
 
Als er veel tussen verschillende bladen wordt heen en weer gesprongen dan geeft dit een heel onrustig scherm en dat maakt de macro uitvoering heel erg traag. Hiermee wordt de macro snel uitgevoerd zonder overbodig gedoe op het scherm

Ron
 
Als er veel tussen verschillende bladen wordt heen en weer gesprongen dan geeft dit een heel onrustig scherm en dat maakt de macro uitvoering heel erg traag. Hiermee wordt de macro snel uitgevoerd zonder overbodig gedoe op het scherm

Ron

De cursorbewegingen in deze macro worden dan niet zichtbaar.

Terzijde: die zijn ook allemaal overbodig.
De volgende macro doet precies hetzelfde op een veel eenvoudiger manier.

Code:
Sub woordteller()
  Selection.Expand wdWord
  if Selection<>"" then Msgbox trim(selection) & " komt " & (ActiveDocument.Content.Characters.Count - Len(Replace(ActiveDocument.Content, Trim(Selection), ""))) \ Len(Trim(Selection)) & "keer voor"
  Selection.Collapse
End Sub
Thx mannekes. allemaal duidelijk. Hartelijke dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan