如何修复Google脚本中的``getNextDataCell下一个跳过一个单元格''错误

时间:2019-07-04 17:32:59

标签: google-apps-script

所以在这种奇怪的情况下,我使用此代码,选择位于A4上,在我使用getNextDataCell(NEXT)方法之后,它选择了C4而不是B4?

Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');

执行后还有一张照片:https://ibb.co/kBMf8Ff

这是我的完整代码:

function Macro3() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var Testsheet = spreadsheet.getSheetByName('Test');
  var data = Testsheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++){
    if (data[i][0] == 'Harpeth Valley Utilities District'){
      var temp = i + 1;
      Testsheet.getRange('A'+temp).activate();
      Testsheet.getCurrentCell().setBackground('#000000').setFontColor('#ff0000');
      Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');
      Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).setBackground('#000000').setFontColor('#ff0000');
    }
  }
};

1 个答案:

答案 0 :(得分:0)

问题:

getNextDataCell(direction)的正式文件如下。

  

从范围的第一列和行中的单元格开始,返回给定方向的下一个单元格,该方向是具有数据的连续单元格范围的边缘或其中电子表格边缘的单元格方向。这等效于在编辑器中输入Ctrl + [箭头键]。

在共享图像中,边缘为“ C”列。这样,单元格“ C4”的颜色就会改变。

当您要更改“ B4”而不是“ C4”的颜色作为修改时,该修改如何?请认为这只是几个答案之一。

修改后的脚本:

从:
Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');
Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).setBackground('#000000').setFontColor('#ff0000');
至:
Testsheet.getCurrentCell().offset(0, 1).setBackground('#000000').setFontColor('#ff0000');

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。