Påfyldning tabelceller med en makro

Som du arbejder med tabeller i Word, kan du udfylde de forskellige celler i en tabel med et sæt værdi. For eksempel kan du ønsker at kopiere noget til Udklipsholder og derefter indsætte indholdet af klippebordet til hver celle i en tabel. Følgende makro vil gøre det trick:

Sub PasteToCells ()
Dim TargetRange Som Range
Dim oTargCell Som Cell

Hvis Selection.Cells.Count = 0 Derefter
'Afslut, hvis der ikke celler i udvælgelsen
MsgBox "ingen celler valgt", vbCritical
Exit Sub
End hvis
Ved fejl Resume Next
Set TargetRange = Selection.Range
For hver oTargCell I Selection.Cells
oTargCell.Range.Paste
Næste oTargCell
TargetRange.Select
End Sub

De makro starter med kontrol for at sikre, at udvælgelsen indeholder nogle celler. Hvis ikke, så brugeren informeres, og makroen afsluttes. Derefter valg lagres i en variabel, så den kan vælges (igen) ved slutningen af ​​makro. Uden denne kode vil makro forlade indsætningspunktet kollapsede i den første celle i den oprindelige selektion.

Den virkelige kød af makroen er i For ... Next løkke. Det skridt gennem cellerne i udvælgelsen og erstatter hvad er der med indholdet af Udklipsholder. Endelig er det oprindelige valg igen valgt, og makro ender.

Du har sikkert bemærket, at der er en ved fejl erklæring i makroen, så godt. Denne erklæring dybest set fortæller Word til at ignorere eventuelle fejl og fortsætte med den næste sætning. Fejl, der kan udløses omfatter køre makroen med intet i Udklipsholder eller forsøger at indsætte en tabel i en tabelcelle. Word vil ikke gøre hverken opgave, men det vil fortsat forsøge indtil det er gjort med alle celler i markeringen.

Du bør bemærke, at denne macro erstatter hvad der er i de markerede celler med indholdet af Udklipsholder; uanset var tidligere i cellerne tabt. Hvis du ønsker at i stedet tilføje oplysninger til begyndelsen af ​​cellerne, uden at forstyrre de eksisterende indholdet af cellen, kan du bruge denne let ændret makro:

Sub PasteToCellsStart ()
Dim TargetRange Som Range
Dim oTargCell Som Cell
Dim PasteRange Som Range

Hvis Selection.Cells.Count = 0 Derefter
'Afslut, hvis der ikke celler i udvælgelsen
MsgBox "ingen celler valgt", vbCritical
Exit Sub
End hvis
Ved fejl Resume Next
Set TargetRange = Selection.Range
For hver oTargCell I Selection.Cells
Set PasteRange = oTargCell.Range
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Næste oTargCell
TargetRange.Select
End Sub

En sidste ændring ville være at komme med en makro, der vil indsætte til slutningen af, hvad der er i cellerne. Du tror måske, at du kunne erstatte wdCollapseStart med wdCollapseEnd i det foregående makro, men det betyder ikke korrekt inden borde. I stedet skal du udskifter For ... Next løkke i ovenstående makro. Det følgende eksempel viser en ændret version af makro.

Sub PasteToCellsEnd ()
Dim TargetRange Som Range
Dim oTargCell Som Cell
Dim PasteRange Som Range

Hvis Selection.Cells.Count = 0 Derefter
'Afslut, hvis der ikke celler i udvælgelsen
MsgBox "ingen celler valgt", vbCritical
Exit Sub
End hvis
Ved fejl Resume Next
Set TargetRange = Selection.Range
For hver oTargCell I Selection.Cells
Set PasteRange = oTargCell.Range.Characters.Last
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Næste oTargCell
TargetRange.Select
End Sub

WordTips er din kilde til omkostningseffektiv Microsoft Word træning. (Microsoft Word er det mest populære tekstbehandlingsprogram i verden.) Dette tip (1508) gælder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finde en version af dette tip til menufaner Word (Word 2007 og nyere) her: Påfyldning tabelceller med en makro.


© 2020 Zajacperrone.com | Contact us: webmaster# zajacperrone.com