Número de índice de la tabla activa (Microsoft Word)
Mary está escribiendo una macro que dividirá una mesa. Trabajar en la tabla activa no es un gran problema, pero quiere copiar la primera fila de la tabla activa, luego dividir la tabla y finalmente pegar la fila copiada en la primera fila de la nueva tabla creada por la división. Para hacer esto correctamente, quiere determinar los números de índice que utiliza Word para hacer referencia a las dos tablas de la colección Tables. María quiere saber cómo puede descubrir el número de índice de la tabla activa (antes de la división) para que pueda simplemente incrementar ese número para conocer el nuevo número de índice de la tabla creada después de la división.
El modelo de objetos de Word se basa en organizar objetos individuales en colecciones a las que se puede acceder mediante programación. Esto se aplica no solo a las tablas, sino también a los párrafos, los gráficos y muchos otros objetos.
Puede encontrar fácilmente la cantidad de objetos en una colección usando la propiedad Count. Por ejemplo, puede usar lo siguiente para descubrir cuántas tablas hay en un documento, ya que devuelve el número de objetos de la colección Tables:
iNumTables = ActiveDocument.Tables.Count
Encontrar qué tabla es la actual es un poco más complicado, pero se puede hacer. La forma más sencilla es agregar un marcador a la tabla actual y luego examinar todas las tablas del documento para ver qué tabla contiene ese marcador. Una vez que lo averigüe, sabrá qué tabla es la actual y podrá eliminar el marcador. La siguiente macro implementa estos pasos:
Sub FindTableNumber() Dim J As Integer Dim iTableNum As Integer Dim oTbl As Table Selection.Bookmarks.Add ("TempBM") For J = 1 To ActiveDocument.Tables.Count Set oTbl = ActiveDocument.Tables(J) oTbl.Select If Selection.Bookmarks.Exists("TempBM") Then iTableNum = J Exit For End If Next J ActiveDocument.Bookmarks("TempBM").Select ActiveDocument.Bookmarks("TempBM").Delete MsgBox "The current table is table " & iTableNum End Sub
Para usar la macro, simplemente asegúrese de que el punto de inserción esté dentro de la tabla deseada. La macro se puede adaptar fácilmente a un contexto más amplio, como uno en el que la tabla se divide y se manipula de otro modo.
Sin embargo, existe otra forma de manejar programáticamente la acción subyacente que Mary quiere lograr: un método que no requiere el uso de números de índice para la colección Tables. Puede copiar la primera fila de la tabla y luego dividir la tabla usando un comando similar al siguiente:
Selection.Tables(1).Split(5)
Este comando divide la tabla en la fila 5; puede cambiar fácilmente el punto de división cambiando la fila en la que se divide. Luego, puede mover el punto de inserción al comienzo de la siguiente tabla (la recién creada) usando el siguiente comando:
Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext
Este comando salta al principio de la siguiente tabla y luego puede pegar la fila de encabezado que copió anteriormente.
_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 (10897) 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-Index_Number_for_the_Active_Table [Número de índice para la tabla activa]
.