środa, 3 grudnia 2014

Sumowanie liczb (całkowitych) w dokumencie Word (1 z 2)

Tym razem temat wywołany na jednym z forów poświęconych programowaniu w VBA- w jaki sposób zsumować wszystkie wartości liczbowe w dokumencie Word, w określonym zaznaczeniu.
W sytuacji gdyby rzecz dotyczyła sumy w tabeli w dokumencie moglibyśmy sięgnąć po odpowiednie pola sumujące. Tym razem chodzi jednak o dowolny zaznaczony obszar.

Rozwiązanie podzielę na dwie części- sumowanie liczb całkowitych- i ten wariant zostanie zaprezentowany w niniejszym poście- oraz sumowanie liczb rzeczywistych, co jak się okaże jest relatywnie prostym zadaniem.

Aby zsumować liczby rzeczywiste najlepszym rozwiązaniem jest zastosować obiekt Find dla odpowiednio skonstruowanego klucza wyszukiwania z wykorzystaniem znaków specjalnych (wildcards). Poniższy kod realizuje to zadanie wyświetlając na końcu komunikat z podsumowaniem.
01Sub SearchSumIntegers()
02 
03Dim Counter As Long
04Dim Total As Long
05 
06    With Selection.Find
07        .Text = "[0-9]{1;}"
08        .Replacement.Text = ""
09        .Forward = True
10        .Wrap = wdFindStop
11        .Format = False
12        .MatchCase = False
13        .MatchWholeWord = False
14        .MatchAllWordForms = False
15        .MatchSoundsLike = False
16        .MatchWildcards = True
17    End With
18    
19    Do While Selection.Find.Execute
20        
21        Counter = Counter + 1
22        Total = Total + Selection
23 
24    Loop
25    MsgBox "W dokumencie znajduje się  " & Counter & _
26           " liczb o łącznej wartości równej " & Total
27 
28End Sub

Powyższe rozwiązanie w wariancie sumującym liczby rzeczywiste opublikowany zostanie już jutro.

Brak komentarzy:

Prześlij komentarz