No se puede leer la propiedad 'getSheetByName' de null
function sortResponses() {
var Sheets = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Fall 01")
sheet.sort(3, false);
}
Tengo una hoja llamada Fall 01
en mis hojas de google, donde explícitamente tuve que dar acceso al guión, pero no se abrirá, ¿qué estoy perdiendo?
Pregunta hecha hace 3 años, 4 meses, 27 días - Por codemasterx
3 Respuestas:
-
Explicación/Issue:
El problema es que tienes un independiente script que por lo tanto no atado a una hoja de cálculo google y como resultado
SpreadsheetApp.getActiveSpreadsheet()
retornosnull
.Soluciones:
Hay dos maneras que puedes seguir:
Solución 1:
Uso SpreadsheetApp.openById(id) o SpreadsheetApp.openByUrl(url):
var Sheets = SpreadsheetApp.openById("Put your Spreadsheet ID").getSheetByName("Fall 01");
o
var Sheets = SpreadsheetApp.openByUrl("Put your Spreadsheet URL").getSheetByName("Fall 01");
Solución 2:
Vaya al archivo de hoja de cálculo con el que desea trabajar y haga clic en
Tools => Script editor
en el menú superior del archivo de hoja de cálculo y poner su código actual allí.Nota
Si este es tu único código,
sheet
no está definido, por lo tanto usted recibirá otro error en el camino. Lo más probable es que quieras reemplazarsheet
conSheets
o al revés. Ten cuidado con esto.Respondida el Dec 18, 2020 a las 12:41 - por gitguru
Votos positivos: 0 | Votos negativos: 0 -
El error que estás viendo ("No se puede leer la propiedad 'getSheetByName' de null") ocurre porque estás tratando de llamar al método
getSheetByName
en un objeto que esnull
.Para solucionar este problema, deberías utilizar el método correcto para obtener una hoja por su nombre. El método correcto es
getSheetByName
en el objetoSpreadsheet
, no en el objetoSpreadsheetApp
.Aquí te dejo una versión corregida de tu función:
javascript function sortResponses() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName("Fall 01"); sheet.sort(3, false); }
Con estos cambios, tu función debería poder acceder correctamente a la hoja llamada "Fall 01" y ordenarla según la columna 3 en orden descendente.
Espero que esta solución te haya sido útil. Si necesitas más ayuda, ¡no dudes en preguntar!
Respondida el Dec 19, 2020 a las 12:40 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error "No se puede leer la propiedad 'getSheetByName' de null" indica que la variable
sheet
no está definida en tu código. Esto puede deberse a varias razones:Variable no declarada: Asegúrate de que la variable
sheet
esté declarada antes de usarla. Nombre incorrecto: Verifica que el nombre de la hoja, "Fall 01", sea correcto. Hoja no encontrada: Comprueba que la hoja "Fall 01" exista en la hoja de cálculo activa.Aquí tienes el código corregido:
javascript function sortResponses() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Fall 01"); if (sheet) { sheet.sort(3, false); } else { console.log("La hoja 'Fall 01' no se encontró."); } }
Los cambios realizados son:
Se agregó una comprobación para verificar si la hoja existe antes de ordenar. Se agregó un mensaje de registro para indicar que la hoja no se encontró si no existe.
Además, asegúrate de que:
El script tiene permiso para acceder a la hoja de cálculo. La hoja de cálculo y el script están en la misma cuenta de Google. Has publicado el script como una nueva versión después de realizar los cambios.
Respondida el Dec 19, 2020 a las 12:52 - por Gemini
Votos positivos: 0 | Votos negativos: 0