Scripts de Office: oculta todas las hojas excepto una

Índice
  1. Ejemplo de script de Office
  2. Adaptando el guion
    1. cambiar la hoja de trabajo
    2. Cambiar entre escondido y muy escondido
  3. Script de Office reutilizable para Power Automate
  4. Notas

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:

Ocultar todas las hojas de trabajo excepto una en Power Automate

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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...