Dato che lavori con le tabelle in Word, potresti voler riempire le varie celle di una tabella con un valore impostato. Ad esempio, potresti voler copiare qualcosa negli Appunti e quindi incollare il contenuto degli Appunti in ogni cella di una tabella. La seguente macro farà il trucco:

Sub PasteToCells()

Dim TargetRange As Range     Dim oTargCell As Cell

If Selection.Cells.Count = 0 Then         'Quit if no cells in selection         MsgBox "No cells selected", vbCritical         Exit Sub     End If     On Error Resume Next     Set TargetRange = Selection.Range     For Each oTargCell In Selection.Cells         oTargCell.Range.Paste     Next oTargCell     TargetRange.Select End Sub

La macro inizia verificando che la selezione includa alcune celle. In caso contrario, l’utente viene informato e la macro viene terminata.

Quindi la selezione viene memorizzata in una variabile in modo che possa essere selezionata (di nuovo) alla fine della macro. Senza questo codice, la macro lascerebbe il punto di inserimento compresso nella prima cella della selezione originale.

La vera carne della macro è nel ciclo For …​ Next. Passa attraverso le celle nella selezione e sostituisce ciò che è presente con il contenuto degli Appunti. Infine, la selezione originale viene nuovamente selezionata e la macro termina.

Probabilmente hai notato che c’è anche un’istruzione On Error nella macro. Questa istruzione fondamentalmente dice a Word di ignorare eventuali errori e continuare con l’istruzione successiva. Gli errori che potrebbero essere attivati ​​includono l’esecuzione della macro senza nulla negli Appunti o il tentativo di incollare una tabella all’interno di una cella della tabella. Word non eseguirà nessuna delle due attività, ma continuerà a provare fino a quando non avrà completato tutte le celle nella selezione.

Dovresti notare che questa macro sostituisce tutto ciò che è nelle celle selezionate con il contenuto degli Appunti; tutto ciò che era precedentemente nelle celle è perso. Se invece vuoi aggiungere informazioni all’inizio delle celle, senza disturbare il contenuto esistente della cella, puoi usare questa macro leggermente modificata:

Sub PasteToCellsStart()

Dim TargetRange As Range     Dim oTargCell As Cell     Dim PasteRange As Range

If Selection.Cells.Count = 0 Then         'Quit if no cells in selection         MsgBox "No cells selected", vbCritical         Exit Sub     End If     On Error Resume Next     Set TargetRange = Selection.Range     For Each oTargCell In Selection.Cells         Set PasteRange = oTargCell.Range         PasteRange.Collapse wdCollapseStart         PasteRange.Paste     Next oTargCell     TargetRange.Select End Sub

Un’ultima modifica sarebbe quella di creare una macro che incolli alla fine di ciò che è nelle celle. Potresti pensare di poter sostituire wdCollapseStart con wdCollapseEnd nella macro precedente, ma ciò non funziona correttamente all’interno delle tabelle. Invece, è necessario sostituire il ciclo For …​ Next nella macro precedente. L’esempio seguente mostra una versione modificata della macro.

Sub PasteToCellsEnd()

Dim TargetRange As Range     Dim oTargCell As Cell     Dim PasteRange As Range

If Selection.Cells.Count = 0 Then         'Quit if no cells in selection         MsgBox "No cells selected", vbCritical         Exit Sub     End If     On Error Resume Next     Set TargetRange = Selection.Range     For Each oTargCell In Selection.Cells         Set PasteRange = oTargCell.Range.Characters.Last         PasteRange.Collapse wdCollapseStart         PasteRange.Paste     Next oTargCell     TargetRange.Select End Sub

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13157) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365. Puoi trovare una versione di questo suggerimento per vecchia interfaccia del menu di Word qui: