Czy ktos wie jak zedytowac dokument w Wordzie gdzie wystepuja liczby w formacie
PLN 1,227,086 thousand
PLN 800,944 thousand
etc. na takie zeby byly w formacie
PLN XXX million ?
Czyli potrzebuje makra ktore by zmienilo PLN XXX,XXX thousand na PLN XXX million.
Z gory dzieki.
[VBA] Formatowanie komórek
- hellsing
- Użytkownik
- Posty: 191
- Rejestracja: 30 mar 2006, o 14:09
- Płeć: Mężczyzna
- Lokalizacja: Z kątowni
- Podziękował: 11 razy
- Pomógł: 16 razy
[VBA] Formatowanie komórek
Ostatnio zmieniony 19 sie 2013, o 21:10 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 36
- Rejestracja: 9 sie 2013, o 15:16
- Płeć: Mężczyzna
- Lokalizacja: KRK
- Pomógł: 7 razy
[VBA] Formatowanie komórek
Ja bym to zrobił tak:
Kod: Zaznacz cały
Sub SpecjalneZamien()
Selection.Find.ClearFormatting
With Selection.Find
.Text = "PLN [0-9]{1;3}(,[0-9]{1;3})* thousand"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Do
Selection.Find.Execute
If Len(Selection.Text) > 1 Then
Selection.TypeText Text:=Replace(Replace(Selection.Text, ",", ""), "thousand", "million")
Else
MsgBox ("koniec")
Exit Do
End If
Loop While 1
End Sub
- hellsing
- Użytkownik
- Posty: 191
- Rejestracja: 30 mar 2006, o 14:09
- Płeć: Mężczyzna
- Lokalizacja: Z kątowni
- Podziękował: 11 razy
- Pomógł: 16 razy
[VBA] Formatowanie komórek
Nie do konca dziala. Zamienia PLN XXX,XXX thousand ma PLN XXXXXX million. Chcialbym zeby zamienial PLN 1,234,567 thousand na PLN 1,234 millon. Moglbys tak to zedytowac?
-
- Użytkownik
- Posty: 1023
- Rejestracja: 10 lut 2008, o 15:45
- Płeć: Mężczyzna
- Podziękował: 72 razy
- Pomógł: 15 razy
[VBA] Formatowanie komórek
Podejrzewam, że
Kod: Zaznacz cały
Sub SpecjalneZamien()
Selection.Find.ClearFormatting
With Selection.Find
.Text = "PLN [0-9]{1;3}(,[0-9]{1;3})* thousand"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Do
Selection.Find.Execute
If Len(Selection.Text) > 1 Then
Selection.TypeText Text:=Replace(Replace(Selection.Text, ",", ","), "thousand", "million")
Else
MsgBox ("koniec")
Exit Do
End If
Loop While 1
End Sub
-
- Użytkownik
- Posty: 36
- Rejestracja: 9 sie 2013, o 15:16
- Płeć: Mężczyzna
- Lokalizacja: KRK
- Pomógł: 7 razy
[VBA] Formatowanie komórek
Gdybyś od razu podał ten przykład to było by wiadomo, że chodzi Ci o to:
Dobrze jest też wiedzieć, że gdyby ktoś chciał to uruchomić na angielskiej wersji MS Word-a to trzeba zmienić jedną linijkę na:
Kod: Zaznacz cały
Sub SpecjalneZamien()
Dim textLen, substLen
Selection.Find.ClearFormatting
With Selection.Find
.Text = "PLN [0-9]{1;3}(,[0-9]{3})* thousand"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
substLen = Len(",XXX thousand")
Do
Selection.Find.Execute
textLen = Len(Selection.Text)
If textLen > substLen And InStr(Selection.Text, " million") < 1 Then
Selection.TypeText Text:=Mid(Selection.Text, 1, textLen - substLen) & " million"
Else
MsgBox ("koniec")
Exit Do
End If
Loop While 1
End Sub
Kod: Zaznacz cały
.Text = "PLN [0-9]{1,3}(,[0-9]{3})* thousand"