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() retornos null.

    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 reemplazar sheet con Sheets 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 es null.

    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 objeto Spreadsheet, no en el objeto SpreadsheetApp.

    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