我需要有关 ExcelScript 的帮助,我需要 Column J 过滤器
删除 J 列中值为“已取消”的整个行 将 J 列中的任何值“进行中”重命名为“已分配” 将 J 列中带有“待处理”的任何值重命名为“已分配” 将 J 列中带有“已关闭”的任何值重命名为“已解决”
有人可以帮助我吗?
谢谢
我尝试根据范围过滤然后删除
your text
删除选定工作表上的 40:90 范围
selectedSheet.getRange("40:90").delete(ExcelScript.DeleteShiftDirection.up);
your text
清除所选工作表上的自动过滤器
selectedSheet.getAutoFilter().clearCriteria();
your text
在selectedSheet上设置范围J2
selectedSheet.getRange("J2").setValue("已解决");
your text
自动填充范围
selectedSheet.getRange("J2").autoFill("J2:J103", ExcelScript.AutoFillType.fillDefault);
function main(workbook: ExcelScript.Workbook) {
const dataSheet = workbook.getActiveWorksheet();
const dataRange = dataSheet.getUsedRange(true);
const dataVals = dataRange.getTexts();
let outVals: [] = [];
const colIndex = 9; // Col J
let delRowsCnt = 0;
dataVals.forEach(row =>{
switch (row[colIndex]){
case "In Progress":
row[colIndex] = "Assigned";
break;
case "Pending":
row[colIndex] = "Assigned";
break;
case "Closed":
row[colIndex] = "Resolved";
break;
case "Canceled":
row[colIndex] = "$DEL$";
break;
}
if (row[colIndex] === "$DEL$") {
delRowsCnt--;
} else {
outVals.push(row);
}
})
// console.log(outVals);
dataRange.clear(ExcelScript.ClearApplyTo.contents);
dataRange.getResizedRange(delRowsCnt,0).setValues(outVals);
}