No soy programador y soy bastante nuevo en Office Scripts y me encantaría recibir ayuda.
Actualmente estoy tratando de eliminar filas enteras si la celda en la columna "Cambiar indicador", que resulta ser la segunda columna en la hoja de Excel, contiene la palabra "Eliminar" o "Eliminado".
Logré eliminar filas si contienen la palabra "Eliminar" con el siguiente script, pero no pude hacer que las celdas del script también tuvieran "Eliminado". Intenté colocar corchetes allí, pero desafortunadamente no funcionó.
¿Alguien puede sugerir una mejor práctica para manejar la eliminación de filas en función de múltiples coincidencias de texto (eliminar si x = y O z)?
function main(workbook: ExcelScript.Workbook) { // Get the used range on the current sheet. const currentSheet = workbook.getActiveWorksheet(); let table = workbook.getTables()[0]; // Get the RangeAreas object for each cell with a formula. const usedRange = currentSheet.getUsedRange(); //get the values of the range let values = usedRange.getValues(); //get the row count of the range let rowCount = usedRange.getRowCount(); //starting at the last row, check if the cell in column '1' equals to 'Delete'. If it is, then delete the entire row. for (let i = rowCount - 1; i >= 0; i--) { if (values[i][1] == "Delete") { usedRange.getCell(i, 1).getEntireRow().delete(ExcelScript.DeleteShiftDirection.up) } } }Su declaración if debería verse como la siguiente:
if (values[i][1] == "Delete" || values[i][1] == "Deleted")Si está buscando tutoriales más generales, aquí hay una página que encontré que explica un poco más las declaraciones if: https://www.w3schools.com/jsref/jsref_if.asp
Puede usar el método includes() del objeto de cadena para hacer esto. Para usar ese método, tendría que convertir el valor en una cadena usando el método toString() así:
if (values[i][1].toString().includes("Delete"))Al usar include, se marcará tanto para Eliminar como para Eliminar.
Las palabras Delete y Deleted se pueden escribir de diferentes formas (p. ej., delete y delete, DELETE y DELETED, etc.). Esas ortografías diferentes no serán marcadas por includes() . Si desea que esas diferentes ortografías se evalúen de la misma manera, puede usar un método como toLowercase() para hacerlo. Después de llamar a ese método, solo proporcionaría el método includes() con una versión en minúsculas de la ortografía de la siguiente manera:
if (values[i][1].toString().toLowerCase().includes("delete"))Este enfoque también marcará cualquier otro texto que incluya eliminar. Entonces, si tiene texto en una celda como "esta fila no debe eliminarse", este código también marcará ese texto.