Riempire le celle di tabella con una macro

Come si lavora con tabelle in Word, si consiglia di riempire le varie cellule in una tabella con un valore impostato. Ad esempio, si potrebbe desiderare di copiare qualcosa negli Appunti e quindi incollare il contenuto degli Appunti per ogni cella di una tabella. La seguente macro farà il trucco:

PasteToCells Sub ()
Dim TargetRange come gamma
Dim oTargCell Come cellulare

Se Selection.Cells.Count = 0 Then
'Uscire se non le cellule nella selezione
MsgBox "Nessun celle selezionate", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
Per ogni oTargCell In Selection.Cells
oTargCell.Range.Paste
Successivo oTargCell
TargetRange.Select
End Sub

Si avvia la macro di controllo per assicurarsi che la selezione include alcune cellule. In caso contrario, l'utente è informato e la macro è finita. Poi la selezione viene memorizzata in una variabile in modo che possa essere selezionata (nuovo) alla fine della macro. Senza questo codice, la macro lascerebbe il punto di inserimento crollata nella prima cella della selezione originale.

La vera carne della macro è nel ciclo FOR ... NEXT. E passi attraverso le cellule nella selezione e sostituisce ciò che è lì con il contenuto degli Appunti. Infine, la selezione originale viene nuovamente selezionata e la macro termina.

Probabilmente avrete notato che c'è un'istruzione On Error nella macro, pure. Questa dichiarazione dice fondamentalmente Parola di ignorare eventuali errori e continuare con l'istruzione successiva. Errori che potrebbero essere attivati ​​comprendono l'esecuzione della macro con niente in Appunti o cercando di incollare una tabella all'interno di una cella. Word non eseguire una operazione, ma continuerà a provare fino è fatto con tutte le celle nella selezione.

Si dovrebbe notare che questa macro sostituisce tutto ciò che è nelle celle selezionate con il contenuto degli Appunti; tutto ciò è stato precedentemente nelle cellule è perso. Se si desidera aggiungere invece informazioni all'inizio delle cellule, senza disturbare il contenuto esistente della cella, è possibile utilizzare questa macro leggermente modificata:

Sub PasteToCellsStart ()
Dim TargetRange come gamma
Dim oTargCell Come cellulare
Dim PasteRange come gamma

Se Selection.Cells.Count = 0 Then
'Uscire se non le cellule nella selezione
MsgBox "Nessun celle selezionate", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
Per ogni oTargCell In Selection.Cells
Set PasteRange = oTargCell.Range
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Successivo oTargCell
TargetRange.Select
End Sub

Un'ultima modifica potrebbe essere quella di trovare una macro che incollare alla fine di ciò che è nelle cellule. Si potrebbe pensare che è possibile sostituire con wdCollapseStart wdCollapseEnd nella macro precedente, ma che non funziona correttamente all'interno delle tabelle. Invece, è necessario sostituire il ciclo For ... Next nella macro sopra. L'esempio seguente mostra una versione modificata della macro.

Sub PasteToCellsEnd ()
Dim TargetRange come gamma
Dim oTargCell Come cellulare
Dim PasteRange come gamma

Se Selection.Cells.Count = 0 Then
'Uscire se non le cellule nella selezione
MsgBox "Nessun celle selezionate", vbCritical
Exit Sub
End If
On Error Resume Next
Set TargetRange = Selection.Range
Per ogni oTargCell In Selection.Cells
Set PasteRange = oTargCell.Range.Characters.Last
PasteRange.Collapse wdCollapseStart
PasteRange.Paste
Successivo oTargCell
TargetRange.Select
End Sub

WordTips è la vostra fonte per la formazione Microsoft Word conveniente. (Microsoft Word è il più popolare software di elaborazione testi del mondo.) Questa punta (1508) si applica a Microsoft Word 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia a barra multifunzione di Word (Word 2007 e più tardi) qui: riempimento celle della tabella con una macro.