es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fecha dinámica del script de oficina para la fila modificada.

Estoy tratando de insertar la fecha de modificación de una fila en una columna de Fecha Modificada para esa fila particular utilizando Office Scripts para Excel Online. Esto es lo más cercano que puedo llegar ya que no he encontrado scripts que obtengan solo la fila modificada que necesitará ser dinámica. Los detalles están en los comentarios en el siguiente código:

function main(workbook: ExcelScript.Workbook) {
// Esto encuentra la ubicación de la celda en K2 (la columna Fecha Modificada está en K:K) pero, en realidad, quiero obtener la ubicación de la fila modificada.
 let datetimeRange = workbook.getWorksheet("Form1").getRange("K2");

// Obtener el rango dinámico de la hoja de trabajo. No estoy seguro si funcionará ya que puede haber algunas celdas vacías. El número de filas y posiblemente columnas cambiará, por lo que necesita ser dinámico.
let myRange = 
workbook.getWorksheet("Form1").getRange("A1").getSurroundingRegion().getAddress();

// Obtener la fecha y hora actual con el objeto de fecha JavaScript.
let date = new Date(Date.now());

// Esto agrega la cadena de fecha a K2, pero en realidad solo quiero que se agregue a Fecha Modificada en la columna Fecha Modificada (dinámica ya que las columnas pueden cambiar) solo para la fila que se modificó.
datetimeRange.setValue(date.toLocaleDateString() + ' ' + date.toLocaleTimeString());
 }

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para Obtener la Fecha de Modificación en Scripts de Office para Excel en Línea

    Para obtener la fecha de modificación insertada en una columna de Fecha Modificada para una fila en particular en Excel en Línea utilizando Scripts de Office, puede seguir los siguientes pasos:

    Paso 1: Localizar la Fila Modificada

    En lugar de obtener la ubicación de la celda para la Fecha Modificada, debe localizar la fila modificada. Puede utilizar el evento onChanged del objeto Workbook para detectar cualquier cambio realizado en el libro de trabajo y luego obtener el número de fila de la fila modificada.

    Aquí está cómo hacerlo:

    function main(workbook: ExcelScript.Workbook) {
      // Obtener la hoja de trabajo donde se encuentra la información
      let sheet = workbook.getWorksheet("Form1");
    
      // Escuchar los cambios realizados en la hoja de trabajo
      sheet.onChanged.add((event) => {
        // Obtener el número de fila de la fila modificada
        let rowNumber = event.address.split(":")[0].split("$")[2];
    
        // Llamar a la función para actualizar la columna Fecha Modificada
        updateModifiedDate(sheet, rowNumber);
      });
    }
    

    Con este código, la función updateModifiedDate se llamará cada vez que se realice un cambio en la hoja de trabajo y se pasará el número de fila modificada como argumento.

    Paso 2: Actualizar la Columna Fecha Modificada

    Ahora que tiene el número de fila, puede actualizar la columna Fecha Modificada para esa fila en particular. Como la columna es dinámica y puede cambiar, también debe encontrar la ubicación de la celda Fecha Modificada dinámicamente.

    Aquí está cómo hacerlo:

    function updateModifiedDate(sheet: ExcelScript.Worksheet, rowNumber: string) {
      // Obtener el índice de columna donde se encuentra la columna Fecha Modificada
      let modifiedDateColumnIndex = sheet.getUsedRange().getColumn(".Fecha Modificada");
    
      // Obtener la ubicación de la celda para la Fecha Modificada en la fila modificada
      let modifiedDateCellLocation = `K${rowNumber}`;
    
      // Obtener el objeto de rango para la celda Fecha Modificada
      let modifiedDateRange = sheet.getRange(modifiedDateCellLocation);
    
      // Obtener la fecha y hora actual con el objeto de fecha de JavaScript.
      let date = new Date(Date.now());
    
      // Establecer la celda Fecha Modificada con la fecha y hora actual
      modifiedDateRange.setValue(date.toLocaleDateString() + ' ' + date.toLocaleTimeString());
    }
    

    Con este código, puede obtener el índice de columna donde se encuentra la columna Fecha Modificada utilizando el método getUsedRange y pasando el encabezado de la columna .Fecha Modificada como argumento. Luego, puede utilizar el número de fila que obtuvo del evento onChanged para encontrar la ubicación de la celda Fecha Modificada en la fila modificada.

    Finalmente, puede establecer el valor de la celda Fecha Modificada con la fecha y hora actual.

    ¡Eso es todo! Con estos pasos, ahora puede obtener la fecha en que se modificó una fila e insertarla en una columna Fecha Modificada utilizando Scripts de Office para Excel en Línea.

Comments are closed.