Scripts de Office: oculta todas las hojas excepto una
En esta publicación, cubriremos el script de Office que puede usar para ocultar todas las hojas excepto una. Compartiré el script básico, junto con las opciones para cambiar el código según sus requisitos.
Dado que Power Automate puede usar Office Scripts, también compartirá el bloque de código reutilizable para usarlo con flujos dinámicos.
Tabla de contenido
- Ejemplo de script de Office
- Adaptando el guion
- cambiar la hoja de trabajo
- Cambiar entre escondido y muy escondido
- Script de Office reutilizable para Power Automate
- Notas
Ejemplo de script de Office
Ingrese el siguiente código en el editor de secuencias de comandos:
función principal (libro de trabajo: ExcelScript.Workbook ){ //Asignar colección de hojas de trabajo a una variable let wsArr = workbook.getWorksheets(); //Cree una variable para contener el nombre de la hoja de trabajo para retener let wsKeepName = workbook.getActiveWorksheet().getName(); //Recorre todas las hojas de trabajo de la colección de hojas de trabajo de WSArrwsArr.forEach(ws = { //si la hoja de trabajo en el bucle no es la hoja de trabajo a retener, entonces if (ws.getName() != wsKeepName) { // Ocultar la hoja de trabajows.setVisibility(ExcelScript.SheetVisibility.hidden);};});}
En las siguientes secciones, le mostraré cómo modificar este script para adaptarlo a su escenario específico.
Adaptando el guion
El ejemplo anterior es el script de Office para ocultar todas las hojas excepto la hoja activa. Hay 2 configuraciones diferentes que podemos cambiar:
- La hoja de trabajo para mantenerse visible.
- Hacer la hoja de trabajo oculta o muy oculta
Echemos un vistazo a estas dos opciones.
cambiar la hoja de trabajo
Para hacer referencia a una hoja de trabajo específica, podemos usar una de las siguientes líneas de código. El ejemplo anterior usa el método de hoja activa, pero esa línea de código se puede reemplazar para hacer referencia al uso de la hoja nombrada o por métodos de posición de hoja.
Hoja activa:
let wsKeepName = workbook.getActiveWorksheet().getName();
Hoja nombrada:
let wsKeepName = "MiNombreDeHoja"
Reemplace MySheetName con el nombre de su hoja.
Posición de la enésima hoja:
let wsKeepName = workbook.getWorksheets()[ 1 ].getName();
El número entre corchetes se refiere a la posición de la hoja. Dado que los scripts de Office tienen una base cero, 0 es la primera hoja, 1 es la segunda hoja, etc.
Cambiar entre escondido y muy escondido
El script de ejemplo oculta hojas de trabajo, que el usuario puede hacer visibles con la interfaz de usuario estándar de Excel. En cambio, podemos hacer láminas muy escondidas. Estos no se muestran en la lista de hojas ocultas; Requieren métodos más avanzados para volver a ser visibles.
Hacer hojas ocultas
ws.setVisibility ( ExcelScript.SheetVisibility. oculto);
Hacer sábanas muy escondidas
ws.setVisibility(ExcelScript.SheetVisibility.veryHidden);
Script de Office reutilizable para Power Automate
Si ejecutamos un script de Office dentro de Power Automate, podemos escribir un script específico similar al que se muestra arriba o tener un código dinámico reutilizable.
Para un script dinámico, los parámetros se pasan al script durante el flujo. Esto significa que solo necesitamos un bloque de código, que se puede llamar una y otra vez, pero con diferentes parámetros.
En el siguiente script, wsKeepName y visibilidadType son los parámetros que se deben pasar durante el flujo.
función principal (libro de trabajo: ExcelScript.Workbook , wsKeepName: cadena , Tipo de visibilidad: cadena ){//Asignar colección de hojas de trabajo a una variable let wsArr = workbook.getWorksheets();//Crear variable para contener el tipo de visibilidad let visibilidadTypeScript: ExcelScript.SheetVisibility ;//Recorre todas las hojas de trabajo de la colección de hojas de trabajo de WSArrwsArr.forEach(ws = {//si la hoja de trabajo en el bucle no es la hoja de trabajo a retener if (ws.getName() != wsKeepName) { //Utilice la instrucción switch para seleccionar el tipo de visibilidad switch (visibilityType) { case "hidden" :visibilidadTypeScript = ExcelScript.SheetVisibility .hidden;caso "muy oculto" :visibilidadTypeScript = ExcelScript.SheetVisibility .veryHidden;}//Ocultar la hoja de trabajows.setVisibility(visibilidadTypeScript);};});}
Para usar el script anterior con Power Automate, el paso será similar al siguiente:
Los parámetros de script pasados durante el flujo son:
- wsKeepName: el nombre de la hoja de trabajo que se conservará
- Tipo de visibilidad: la cadena de texto oculta o muy oculta.
Notas
Algunas cosas a tener en cuenta son:
- Es necesario que haya al menos una hoja visible. Si intentamos ocultar la última hoja visible provocará un error tanto en el editor de scripts como en Power Automate.
- Antes de ejecutar este script, es posible que necesitemos hacer visibles todas las hojas con otro script. Esto garantiza que la hoja que se va a ocultar sea visible antes de ejecutar este script.
- Desde la perspectiva de Office Scripts, getWorksheets() no incluye hojas de gráficos. Por lo tanto, después de ejecutar el código de esta publicación, las hojas de gráficos seguirán siendo visibles.
Páginas relacionadas:
- Guía de hojas de trabajo de Office Scripts
- VBA para ocultar todas las hojas excepto una
Deja una respuesta