“操作员姓名缩写错误”是什么意思?

时间:2019-07-02 14:49:20

标签: google-apps-script

我正在从工作表中读取数据数组,更新元素,然后使用setValues插回-没运气。 简单地读取数组,然后立即使用setValues来设置读取的数据,而不进行任何更改都会导致相同的问题

我尝试调试呼叫,将数据输出到记录器以检查明显的问题。取消设置值的行将停止错误。

function GrabTimes(){
  var RailSheet = SpreadsheetApp.getActive().getSheetByName('D160 Rail Serials');
  var MaxRows = RailSheet.getMaxRows();
  var MaxColumns = RailSheet.getMaxColumns();


  var GrabData = RailSheet.getRange(1, 1, MaxRows, MaxColumns);
  //var GrabDataValues = GrabData.getValues();
  Logger.log(MaxColumns);

  var GrabDataValues = RailSheet.getDataRange().getValues();
  GrabData.setValues(GrabDataValues);

  /*
  for (var n=0;n<MaxRows;n++){
    var StartTimeValue=GrabDataValues[n][20];
    var EndTimeValue=GrabDataValues[n][21];

    if (GrabDataValues[n][1]=="TRUE" && StartTimeValue==""){
      GrabDataValues[n][20]=new Date();
    }
    if (GrabDataValues[n][18]=="TRUE" && StartTimeValue==""){
      GrabDataValues[n][21]=new Date();
    }
   }
   */
}

我希望代码可以简单地获取数据,然后至少不做任何更改就可以将其设置回去? 我希望错误消息突出显示错误的行,尽管它只是报告“操作员初始错误”。仅通过反复试验,我就设法找出了标记问题的线。

1 个答案:

答案 0 :(得分:2)

尝试使用RailSheet.getDataRange().getValues(),它将获取工作表上的所有数据。

作为测试,请尝试以下操作:

function GrabTimes(){
  var RailSheet = SpreadsheetApp.getActive().getSheetByName('D160 Rail Serials');
  var targetSheet = SpreadsheetApp.getActive().getSheetByName('target');
  var GrabData = RailSheet.getDataRange().getValues();
  targetSheet.getRange(1,1,GrabData.length,GrabData[0].length).setValues(GrabData);
}