Llenar las celdas de la tabla con una macro (Microsoft Word)
Mientras trabaja con tablas en Word, es posible que desee completar las distintas celdas de una tabla con un valor establecido. Por ejemplo, es posible que desee copiar algo en el Portapapeles y luego pegar el contenido del Portapapeles en cada celda de una tabla. La siguiente macro funcionará:
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 comienza verificando para asegurarse de que la selección incluye algunas celdas. En caso contrario, se informa al usuario y finaliza la macro.
Luego, la selección se almacena en una variable para que pueda seleccionarse (nuevamente) al final de la macro. Sin este código, la macro dejaría el punto de inserción colapsado en la primera celda de la selección original.
La verdadera esencia de la macro está en el bucle For … Next. Recorre las celdas de la selección y reemplaza lo que esté allí con el contenido del Portapapeles. Finalmente, se vuelve a seleccionar la selección original y finaliza la macro.
Probablemente haya notado que también hay una instrucción On Error en la macro. Esta declaración básicamente le dice a Word que ignore cualquier error y continúe con la siguiente declaración. Los errores que podrían desencadenarse incluyen ejecutar la macro sin nada en el Portapapeles o intentar pegar una tabla dentro de una celda de la tabla. Word no hará ninguna de las dos tareas, pero seguirá intentándolo hasta que termine con todas las celdas de la selección.
Debe tener en cuenta que esta macro reemplaza lo que esté en las celdas seleccionadas con el contenido del Portapapeles; lo que estaba previamente en las celdas se pierde. Si, en cambio, desea agregar información al comienzo de las celdas, sin alterar el contenido existente de la celda, puede usar esta macro ligeramente modificada:
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
Una última modificación sería crear una macro que se pegaría al final de lo que está en las celdas. Podría pensar que podría reemplazar wdCollapseStart con wdCollapseEnd en la macro anterior, pero eso no funciona correctamente dentro de las tablas. En su lugar, debe reemplazar el bucle For … Next en la macro anterior. El siguiente ejemplo muestra una versión modificada de la 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: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Esta sugerencia (13157) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365. Puede encontrar una versión de esta sugerencia para interfaz de menú anterior de Word aquí:
link: / word-Filling_Table_Cells_with_a_Macro [Llenando las celdas de la tabla con una macro]
.