Skocz do zawartości
KieVa

Word 2003

Rekomendowane odpowiedzi

Witam serdecznie, Mam taki problem.

 

W Wordzie miałem zrobioną tabelkę z róznymi danymi. Imie, nazwisko itp itd.

Takich rekordów nazbieralo mi się trochę i pewnego dnia ten plik się zepsuł ;/

Po odzyskaniu go mocno się zdeformował. Otóż są rekordy jeden po drugim z tymże chciałbym żeby były obok siebie te dotyczące jednej osoby.

 

Myślę że tylko makro mi może pomóc ale nie wiem jak je dokładnie zdefiniować.

Chodzi mi o coś takiego aby wiersze od 1 do 6 ustwaiło obok siebie oddzielając je srednikiem, a co 7 wiersz wrzuciło enter tak aby to był następny rekord.

A wtedy eksportuje to do Accesa.

TEn dokument jest ogromny i chyba ze dwa dni bym go ręcznie edytował :( A zależy mi na czesie bo do pracy potrzebnuje ten plik.

 

Troszkę grunt mi się pali pod nogami.

Bardzo proszę o pomoc.

Wygląda tak :

 

1
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
6
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa

 

a chciałbym żeby wyglądało tak:)

1;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa
6;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa;aaaaaaa

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam

 

Jesli temat jest jeszcze aktualny to prosze oto moje rozwiazanie:

 

 

Sub Makro()

 

Dim zakres As Integer 'Biezaca liczba wierszy w dokumencie

Dim licznik As Integer 'Licznik wypelnianych wierszy

Dim licznik_pom As Integer 'Licznik do scalania okreslonej liczby wierszy

Dim liczba_wierszy_do_scalenia As Integer 'Liczba scalanych wierszy

 

zakres = ActiveDocument.Paragraphs.Count

 

If zakres >= 2 Then

 

licznik = 1

licznik_pom = 2

liczba_wierszy_do_scalenia = 7

 

Do While licznik_pom <= (zakres - licznik + 1)

 

If (licznik_pom Mod liczba_wierszy_do_scalenia = 0) Then

ActiveDocument.Paragraphs(licznik).Range.Words.Last.InsertBefore (";")

ActiveDocument.Paragraphs(licznik).Range.Words.Last.Delete

licznik = licznik + 1

licznik_pom = 2

zakres = ActiveDocument.Paragraphs.Count

Else

ActiveDocument.Paragraphs(licznik).Range.Words.Last.InsertBefore (";")

ActiveDocument.Paragraphs(licznik).Range.Words.Last.Delete

licznik_pom = licznik_pom + 1

End If

 

Loop

 

End If

 

End Sub

 

Moze jeszcze slowko dopowiedzenia:

 

- makro napisalem i testowalem pod Wordem 2007

 

- w kodzie ktory podalem scalanych jest w sumie 7 wierszy a w Twoim przykladzie jest 6 wiec musisz sobie zmienic zmienna liczba_wierszy_do_scalenia = ??? na odpowiednia wartosc

 

- mimo wszystko zachowaj ostroznosc - jesli to sa jakies super wazne dane to zrob kopie :)

 

Pozdr

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...