czwartek, 25 września 2014

Komórka w tabeli dokumentu Word- wstawianie tekstów i obiektów

Myślę, że warto dodać jeszcze jeden wpis dot. Word VBA i pracy z komórkami tabeli w dokumencie Word. Przeglądając ostatnio kilka forów dostrzegłem, że niekiedy problemy sprawia dodawanie zawartości do komórki tabeli.

Przyjmijmy na początek następującą referencję do komórki w tabeli w aktywnym dokumencie:
1Dim Komórka As Cell
2Set Komórka = ActiveDocument.Tables(1).Cell(1, 1)
Komórka.Range.Text = "Hello World"
Próba dodania prostego tekstu do komórki nie stanowi problemu:

1ActiveDocument.Fields.Add Komórka.Range, WdFieldType.wdFieldData

Problemem jednak okazuje się dodanie do komórki np. pola z datą. Poniższy kod wygeneruje błąd (Run-time error '4605'):

1ActiveDocument.Fields.Add Komórka.Range, WdFieldType.wdFieldData

Powyższy problem wynika z faktu, ze wewnątrz komórki występuje znak końca komórki, który widać po włączeniu wyświetlania znaków specjalnych:




W tego typu sytuacjach rozwiązaniem problemu jest wstawienie obiektu z pominięciem znaku końca komórki. Wykonać to można najprościej przed określenie początku i końca  obszaru wstawiania:

1ActiveDocument.Fields.Add _
2                ActiveDocument.Range( _
3                            Komórka.Range.Start, _
4                            Komórka.Range.End - 1), _
5                    WdFieldType.wdFieldDate

Warto zwrócić na wartość -1 w powyższym kodzie- dzięki tej korekcie pomijamy problematyczny symbol końca komórki.

Brak komentarzy:

Prześlij komentarz