Autor Beitrag
Kirk1701A
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Do 22.04.21 20:40 
Hallo zusammen,

ich arbeite gerade an meinem Makro für eine Briefmaske. Ich habe im Briefkopf eine Tabelle drin, von der eine bestimmte Zelle, abhängig der Angaben gelöscht und daher die direkt darüber etwas vergrößert, oder gar nichts verändert werden soll.

Den Code habe ich bereits geschrieben, um die Zelle zu löschen/die Zelle zu vergrößern. Leider kommt bei der Ausführung der Fehler, dass eine Sammlung fehle, aber ich weiß nicht, welche Sammlung genau damit gemeint ist (Laufzeitfehler 5941). Folgenden Code habe ich diesbezüglich geschrieben:

ausblenden Quelltext
1:
2:
ActiveDocument.Tables(1).Rows(2).Cells(4).Delete
Call ActiveDocument.Tables(1).Rows(2).Cells(3).SetHeight(InchesToPoints(2.2), wdRowHeightExactly)


Folgende Zelle soll gelöscht werden: Spalte 2 Zeile 4
Folgende Zelle soll vergrößert werden: Spalte 2 Zeile 3

Ich gehe hier bei Tables, Rows und Cells aus, dass diese nicht Nullbasierend sind (wie sie auch bei anderen Sammlungen sind).

Hat jemand eine Idee? Das ist quasi das letze bissche Code, um mein Makro zu vervollständigen. Danach ist es fertig.

MfG
Kirk

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 23.04.21 08:56 
Du kannst doch auch VBA debuggen?
Irgendeines der Objekte in ActiveDocument.Tables(1).Rows(2).Cells(x) wird wohl nicht existieren (NULL sein).

Mit Sammlung ist vom englischen übersetzt "collection" ("table", "list", "map") gemeint.
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 14:20 
Hallo Th69,

danke für deine Antwort.

Ich habe es mit Debugging herausgefunden, dass es an diesen beiden Zeilen liegt. Hmm... Ok, dann ist mit Sammlung wohl wirklich das gemeint. Ich zeige hier mal eine Zeichnung, wie die Tabelle optisch aussieht (die rote Zelle soll vergrößert werden in der Höhe, die blaue Zelle soll gelöscht werden):

Schema

Ich weiß nur nicht, was syntaktisch oder logisch falsch sein sollte. Diese Zellen existieren von Anfang an.

MfG
Einloggen, um Attachments anzusehen!
_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 23.04.21 14:46 
Meinst du nicht Columns(2) statt Rows(2)?

Du könntest (bzw. solltest) auch die beiden Code-Zeilen aufteilen und den gemeinsamen Teil nur einmalig lesen:
ausblenden Quelltext
1:
2:
table = ActiveDocument.Tables(1);
// ...

So kannst du dann auch explizit auf NULL testen (und gleiches dann für die weiteren Unterobjekte).

Aber mit einem Haltepunkt in dieser Zeile solltest du es auch per Debugger sehen.
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 15:08 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Meinst du nicht Columns(2) statt Rows(2)?

Ist es nicht eigentlich egal? Aber um das kurz zu erwähnen, egal ob Columns oder Rows, beides hat den selben Effekt.

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 23.04.21 15:26 
Kann es sein, daß es links eine Untertabelle ist? D.h. du müßtest erst auf Zeile 1, Spalte 2 zugreifen und dann dessen Tabelle auswerten.

Aber wie gesagt, mit dem Debugger kannst du es selber einfach herausfinden...
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 15:40 
Kann es eventuell daran liegen, dass die Tabelle in der Kopfzeile liegt? Denn selbst die Sammlung Tabelle ist leer. Da sind keine Objekte enthalten.

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 15:58 
Sorry, habe eben falschen Status angegeben.

Also könnte es vielleicht an der Kopfzeile liegen?

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 23.04.21 16:07 
Ja, dann ist klar, daß die Tabelle leer ist.
Du mußt mittels HeadersFooters zuerst auf das passende HeaderFooter-Objekt zugreifen...
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 16:10 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Du mußt mittels HeadersFooters zuerst auf das passende HeaderFooter-Objekt zugreifen...


Hmm... Ja, das ist logisch. Ich war mir nur nicht sicher und wusste jetzt auch aus dem ff nicht wirklich, wie ich das Objekt anspreche. Danke dir

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 126
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise), VB (VBA), JavaScript
BeitragVerfasst: Fr 23.04.21 16:28 
ausblenden Quelltext
1:
2:
3:
4:
With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Tables(1).Columns(1)
  .Cells(4).Delete
  Call .Cells(3).SetHeight(CentimetersToPoints(2.2), wdRowHeightExactly)
End With


Also, ich habe das so geändert. Ich verstehe nur nicht, wieso "Sections" leer ist. Ich begreife das nicht wirklich, da ich keinen Umbruch oder dergleichen benutze.

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan