用于在列中查找文本的 Office Script For-each 循环

Office Script For-each loop to find text in column

我尝试制作一个 Office 脚本,循环遍历每一行并在 A 列中找到文本为“总计”的行,然后删除该行。 我还没弄好,有谁知道怎么改吗?

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") {