Office Script-For循环中包含数组的If语句不起作用



我试图制作一个Office脚本,它循环遍历每一行,并找到文本为";总计";然后删除该行。我没能让它发挥作用,有人知道如何改变它吗?

function main(workbook: ExcelScript.Workbook) {
//getting the used range in the worksheet
let usedRange = workbook.getActiveWorksheet().getUsedRange();
//getting the row count of the used range
let lastRow = usedRange.getRowCount();
usedRange = workbook.getActiveWorksheet().getRangeByIndexes(0, 0, (usedRange.getRowIndex() + lastRow), 19)
//getting the values of the range
let values = usedRange.getValues();
//getting the row count of the range
let rowCount = usedRange.getRowCount();
//for every row starting at the last row, checking if the cell in column 'A' contains text "Total". If it is, then delete the entire row. 
for (let i = rowCount - 1; i >= 0; i--) {
if (values[i][18] == "Total") {
usedRange.getCell(i, 1).getEntireRow().delete(ExcelScript.DeleteShiftDirection.up)
}
}
}

我认为你的问题在这一行:

if (values[i][18] == "Total") {

第一个数组[i]采用与Excel工作表中的行相对应的参数。第二个数组[18]采用与Excel工作表中的列相对应的参数。由于数组是基于零的,所以第一列A将对应于索引零。所以您只需要将值从18更新为0。它应该在A列上执行此检查。因此更新后的代码将如下所示:

if (values[i][0] == "Total") {

最新更新