Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

206
Vistas
Google App Script: comparta hojas de cálculo en la columna 1, con usuarios en la columna 2

Objetivo

Al ejecutar el script, otorgue acceso de visualización para todos los correos electrónicos (columna B), a todas las hojas de cálculo (columna A)

La hoja de cálculo se parece a:

URL de la hoja Correos electrónicos
https://docs.google.com/spreadsheets/d/1 Bob@email.com
https://docs.google.com/hojas de cálculo/d/2 Juan@email.com

La secuencia de comandos

 function setSheetPermissions(){ //Spreadsheet that contains the Spreadsheet URL's & Emails. var ss= SpreadsheetApp.openById('spreadsheetID') // Sheet name that contains the URL's & Emails var sheet = ss.getSheetByName("Sheet1") // Get the values of all the URL's in column A var getSheetURLs = sheet.getRange("A2:A50").getValues(); // Get the values of all the emails in column B var getEmails = sheet.getRange("B2:B50").getValues(); for ( i in getEmails) getSheetURLs.addViewer(getEmails[i][0]) }

Problema / Error

getSheetIDs.addViewer no es una función (línea 26, archivo "Código")

Línea 26: getSheetURLs.addViewer(getEmails[i][0])

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puntos de modificación:

  • Puede recuperar ambos valores de las columnas "A" y "B".
  • En su secuencia de comandos, getSheetURLs es una matriz bidimensional. En este caso, el método addViewer no se puede usar directamente. Pensé que esta es la razón de su mensaje de error.

Cuando estos puntos se reflejan en su guión, se convierte en lo siguiente.

Guión modificado:

De:

 // Get the values of all the URL's in column A var getSheetURLs = sheet.getRange("A2:A50").getValues(); // Get the values of all the emails in column B var getEmails = sheet.getRange("B2:B50").getValues(); for ( i in getEmails) getSheetURLs.addViewer(getEmails[i][0])

A:

 var values = sheet.getRange("A2:B" + sheet.getLastRow()).getValues(); values.forEach(([sheetUrl, email]) => { if (sheetUrl && email) SpreadsheetApp.openByUrl(sheetUrl + "/edit").addViewer(email); });
  • De su hoja de cálculo de muestra, entendí que la URL de su hoja de cálculo es como https://docs.google.com/spreadsheets/d/### . En este caso, openByUrl no se puede usar directamente. Así que agregué /edit . Si las URL de la hoja de cálculo que muestra son diferentes de la hoja de cálculo de muestra, proporcione la URL de la hoja de cálculo de muestra. Por esto, me gustaría modificar el script.

  • Si las URL de su hoja de cálculo real son https://docs.google.com/spreadsheets/d/### y https://docs.google.com/spreadsheets/d/###/edit , también puede usar SpreadsheetApp.openByUrl(sheetUrl + (sheetUrl.includes("/edit") ? "" : "/edit")).addViewer(email) .

Referencias:

  • abrirPorUrl(url)
  • addViewer (dirección de correo electrónico) de la hoja de cálculo de clase
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda