Index Number for Active Table

December 31  by Eliza

Mary er å skrive en makro som vil dele en tabell. Arbeider på den aktive tabellen er ikke mye av et problem, men hun ønsker å kopiere den første raden av den aktive tabellen, deretter delt bordet, og til slutt lime inn den kopierte raden til den første raden av det nye bordet er opprettet av split. For å gjøre dette riktig, ønsker hun å bestemme indeksnumrene som brukes av Word til å referere de to tabellene i Tabeller samlingen. Mary ønsker å vite hvordan hun kan oppdage indeksnummeret for den aktive tabellen (før splitt) slik at hun kan bare øke dette tallet til å kjenne den nye indeksnummeret for tabellen opprettet etter delingen.

Word objektmodell er avhengig av å organisere individuelle objekter i samlinger som kan nås programmatisk. Dette gjelder ikke bare for tabeller, men for avsnitt, grafikk og en rekke andre gjenstander. Du kan enkelt finne antall objekter i en samling som bruker greven eiendom. For eksempel kan du bruke følgende å oppdage hvor mange tabeller er i et dokument, som det returnerer antall objekter i Tabeller samlingen:

iNumTables = ActiveDocument.Tables.Count

Finne hvilken tabell er den gjeldende er litt mer komplisert, men det kan gjøres. Den enkleste måten er å legge til et bokmerke til den gjeldende tabellen, og deretter undersøke alle tabellene i dokumentet for å se hvilken tabell inneholder som bokmerke. Når du finner det ut, vet du hvilken tabell er den nåværende, og du kan slette bokmerket. Følgende makro implementerer disse trinnene:

Sub FindTableNumber ()
Dim J As Integer
Dim iTableNum As Integer
Dim oTbl Som tabell

Selection.Bookmarks.Add ("TempBM")
For J = 1 Til ActiveDocument.Tables.Count
Satt oTbl = ActiveDocument.Tables (J)
oTbl.Select
Hvis Selection.Bookmarks.Exists ("TempBM") Deretter
iTableNum = J
Exit For
End If
Neste J
ActiveDocument.Bookmarks ("TempBM"). Velg
ActiveDocument.Bookmarks ("TempBM"). Slett
MsgBox "Den nåværende tabellen er tabellen" & iTableNum
End Sub

Å bruke makroen, rett og slett sørge for at innsettingspunktet er innenfor den ønskede tabellen. Makroen kan enkelt tilpasses til en større sammenheng, for eksempel en der bordet er splittet og ellers manipulert.

Det er en annen måte å programma håndtere den underliggende handlingen som Mary ønsker å oppnå, men-en metode som ikke krever bruk av indeksnumre for Tabeller samlingen. Du kan kopiere den første raden i tabellen og deretter dele bordet ved hjelp av en kommando som ligner på følgende:

Selection.Tables (1) .Split (5)

Denne kommando deler bordet på rad 5; du kan enkelt endre kløyvestedet ved å endre rad der det er delt. Deretter kan du flytte innsettingspunktet til begynnelsen av neste tabell (den nyopprettede en) ved å bruke følgende kommando:

Selection.GoTo Hva: = wdGoToTable, Hvilke: = wdGoToNext

Denne kommandoen hopper til begynnelsen av neste tabell, og du kan deretter lime overskriftsraden du kopierte tidligere.

Hvis du er interessert i en mer detaljert diskusjon om hvordan man programma håndtere tabeller, kan du finne en utmerket artikkel her:

http://msdn2.microsoft.com/en-us/library/aa537149(office.11).aspx

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (505) gjelder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Word (Word 2007 og senere) her: Registrerer Antall for Active Table.