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:
2 | Set 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:
1 | ActiveDocument.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'):
1 | ActiveDocument.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:
1 | ActiveDocument.Fields.Add _ |
2 | ActiveDocument.Range( _ |
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