Google Docs cambio de fecha

votos
4

introducir

Tengo tres guiones que están en una hoja de cálculo de Google Docs. En esta hoja de cálculo, en column H(o column 8), si escribo una x, la secuencia de comandos la cambia en esa fecha días.

Al cabo de unos días, cada día en column Hha cambiado de un día a sólo un número . Los números se ven así: 40492, 40494, 40511.

No estoy seguro de lo que está causando esto. Tal vez sea algo que está mal en mi guión. Los he pegado abajo. ¿Algunas ideas?

Aquí está la primera de ellas:

function onEdit(e) {

  var colorA = yellow;
  var colorB = #dddddd;
  var colorC = #dddddd;
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(Purchase Orders);
  var range = e.source.getActiveRange();
  var sheetName = SpreadsheetApp.getActiveSheet().getName();

  if (sheetName == Purchase Orders) {

 // 3 is column C
    if (range.getColumn() == 7 && range.getValue() != ) {
      var r = range.getRow() + 1;
      sheet.getRange(A + r + :G + r).setBackgroundColor(colorC);
    }
  }

    var col = e.source.getActiveRange().getColumn();
    if(col == 8 || col == 7) {
    var rows = sheet.getMaxRows();

    //column C
    var rangeC = sheet.getRange(H1:H+rows);
    var valuesC = rangeC.getValues();
    //column H range
    var rangeH = sheet.getRange(G1:G+rows);
    var colorH = rangeH.getBackgroundColors();
    var valuesH = rangeH.getValues();

    //iterate over each row in column C and H
    //then change color
        for (var row = 0; row < valuesC.length; row++) {
          //check for columnC and column H
          var hRow = colorH[row];
          if (valuesC[row][0] !=  && valuesH[row][0] == ) {
            hRow[0] = colorA;
          } else if (valuesH[row][0] != ) {
            hRow[0] = colorB;
      }
        }
    sheet.getRange(G1:G + rows).setBackgroundColors(colorH);




}
  }

Aquí está la segunda:

function onEdit(e) {

  var colorA = yellow;
  var colorB = #dddddd;
  var colorC = #dddddd;
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(Purchase Orders);
  var range = e.source.getActiveRange();
  var sheetName = SpreadsheetApp.getActiveSheet().getName();

  if (sheetName == Purchase Orders) {

 // 3 is column C
    if (range.getColumn() == 3 && range.getValue() != ) {
      sheet.insertRowAfter(range.getRow());
      var r = range.getRow() + 1;
      sheet.getRange(A + r + :H + r).setBackgroundColor(colorC);
    }
  }

    var col = e.source.getActiveRange().getColumn();
    if(col == 3 || col == 8) {
    var rows = sheet.getMaxRows();

    //column C
    var rangeC = sheet.getRange(C1:C+rows);
    var valuesC = rangeC.getValues();
    //column H range
    var rangeH = sheet.getRange(H1:H+rows);
    var colorH = rangeH.getBackgroundColors();
    var valuesH = rangeH.getValues();

    //iterate over each row in column C and H
    //then change color
        for (var row = 0; row < valuesC.length; row++) {
          //check for columnC and column H
          var hRow = colorH[row];
          if (valuesC[row][0] !=  && valuesH[row][0] == ) {
            hRow[0] = colorA;
          } else if (valuesH[row][0] != ) {
            hRow[0] = colorB;
      }
        }
    sheet.getRange(H1:H + rows).setBackgroundColors(colorH);




}
  }

Esta es la tercera:

function onEdit(e) {
  var ss = e.source.getActiveSheet();
  var r = e.source.getActiveRange();
   //1 is A, 2 is B, ... 8 is H
  if (r.getColumn() == 8 && r.getValue() == x) {
    r.setNumberFormat(MM/dd/yyyy)
    r.setValue(Utilities.formatDate(new Date(), MST, yyyy-MM-dd));

  }  
}  
Publicado el 24/01/2011 a las 20:46
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
0

Primera posibilidad es que otra macro es sobrescribir la columna - vale la pena descartar. Sin embargo, el problema más probable es que no se está ajustando el formato de la columna para que sea un formato de fecha. Si se trata de un formato general, entonces la fecha se muestra como un número como que está viendo.

La razón es que esta es la forma en que se almacena, y no están diciendo a las células de interpretar este número como una fecha, por lo que no lo hace.

Mi scripting Excel no es del todo hasta que le da el código, pero si se asegura que formatea la colum explícitamente para mostrar fechas, entonces usted debería estar bien. La razón por la que inicialmente se ve bien, se debe a que cuando se agrega una fecha en que lo ve como una fecha, pero si no lo guarda con formato definido, entonces se abrirá de nuevo con el valor predeterminado.

HTH

Respondida el 29/06/2011 a las 09:19
fuente por usuario

votos
0

Después de lo que dijo Schroedinger, intenta transmitir el formato de número a un formato de fecha

Seleccione el rango de celdas que desea cambiar:

Ex. H24:H28

En el menú desplegable, seleccione Formato> Número entonces el formato de fecha que desea utilizar. Se puede o no-trabajar.

Si eso no hace una diferencia que tendrá que emitir el valor entero en el código de secuencias de comandos a un formato de fecha de forma explícita (la conversión puede haber estado sucediendo de forma implícita antes).

Si usted no sabe cómo lanzar tipos en JavaScript, que valdría la pena mirar hacia arriba o abrir una nueva pregunta en este sitio.

Respondida el 29/12/2011 a las 10:30
fuente por usuario

votos
0

En mi configuración regional (Reino Unido), en un teclado de PC pulsando Ctrl +; (Ctrl con un punto y coma) la fecha de hoy insertará en la celda seleccionada (en Col H). Usted podría intentar esto en lugar de su tercer guión.

Si selecciona la columna H y elija en el menú Formato> Número> normal, entonces la fecha se dispayed como un número (como se indica por Schroedingers gato). Por el contrario, la selección de Formato> Número> Fecha pondrán todos los números de nuevo al formato de fecha apropiada para la configuración de hoja de cálculo actual.

Respondida el 17/01/2013 a las 22:50
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more