
Estoy usando un complemento de Excel para completar datos de una tabla de Excel en un documento de Word. Los datos van a diferentes tablas de Word en el documento. La tabla en la que va un subconjunto específico de datos está determinada por un valor en una columna "destino" en la tabla de Excel.
Hasta ahora, había una relación estática entre el valor de la columna de destino y el orden de las tablas de destino, por ejemplo, todo lo que tiene una 'A' va a la primera tabla del documento de Word, todo lo que tiene una 'B' va a la segunda. , etcétera.
Ahora, los usuarios se están volviendo creativos en Word, reordenando las tablas, eliminando tablas, agregando nuevas tablas con fines de estilo,... - en resumen, la relación de "todo lo que pertenece a 'A' va a la primera tabla que se encuentra" puede Ya no estará garantizado.
¿Hay alguna manera de establecer una identificación única para una tabla de Word a través de la interfaz de usuario de Word (quiero que los usuarios hagan esto por su cuenta, sin tener que recurrir a ninguna macro o complemento), que luego podría usar como identificador para encontrar ¿Cuál es la tabla de destino más probable desde la macro de Excel?
Respuesta1
no hay ningunomesapropiedades en Word que deben ser únicas además del índice (y posiblemente ID
, pero solo cuando el documento se guarda como una página web).
Sugeriría usar la Title
propiedad de la tabla. Los usuarios pueden configurar esto con:
haga clic derecho en la tabla> Propiedades de la tabla> Texto alternativo> Título
Y puede acceder a la propiedad mediante programación como (ejemplo de VBA):
Word.ActiveDocument.Tables.Item(1).Title
Puede recorrer la Tables
colección para encontrar la tabla Title
correcta.
Respuesta2
Si setiene que serun nombre único, la única opción que se puede usar sin habilitar funciones que normalmente están ocultas en el menú Desarrollador es asignar un marcador a cada tabla.
La forma consistente de hacerlo sería seleccionar la tabla usando su cuadro de selección y usar Insertar->Enlaces->Marcador para especificar un nombre. Pero el problema es que Word no advierte al usuario cuando reutiliza un marcador: simplemente lo reubica. Entonces, sin macros, etc., (a) el usuario podría especificar cualquier nombre de marcador y eso podría alterar algo más en el documento, por ejemplo, una referencia cruzada, y (b) si especificara el nombre de un marcador que identificara otra tabla, eso La tabla perdería su marcador. ¿Se daría cuenta el usuario? Una vez que el marcador se movió, ¿cómo encontraría el usuario esa tabla sin marcar?
El problema de alterar otras cosas en el documento podría reducirse o eliminarse mediante el uso de una convención de nomenclatura como "comenzar cada nombre de marcador de tabla con tbl_
o tab_
".