Javascript 尝试将行记录为唯一或按ID列复制

Javascript 尝试将行记录为唯一或按ID列复制,javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,我正在尝试为google工作表编写一个脚本,以记录ID列是否包含重复的或唯一的ID号 这就是我到目前为止所做的: function mergeCellValuesVert() { var spreadsheetId = '1GCJw9mwgi0n84iZ8L4MntBioM5Y1YtxhJ4zatNY1kZw'; var rangeName = 'Sheet1!A2:H'; var values = Sheets.Spreadsheets.Values.get(spreadsh

我正在尝试为google工作表编写一个脚本,以记录ID列是否包含重复的或唯一的ID号

这就是我到目前为止所做的:

function mergeCellValuesVert() {
  
  var spreadsheetId = '1GCJw9mwgi0n84iZ8L4MntBioM5Y1YtxhJ4zatNY1kZw';
  var rangeName = 'Sheet1!A2:H';
  var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeName).values;
  
  if (!values){
    
    return;
    
  }
  else {
    
    for (var row = 0; row < values.length; row ++){
      
      var col = 0;
      
      if(values[row][col] == values[row-1][col]){
        Logger.log('Copy');
        }
      else {
        Logger.log('Unique');
      }
    }
    
  }
  
}

函数mergeCellValuesVert(){ var电子表格ID='1GCJw9mwgi0n84iZ8L4MntBioM5Y1YtxhJ4zatNY1kZw'; var rangeName='Sheet1!A2:H'; var values=Sheets.Spreadsheets.values.get(spreadsheetId,rangeName).values; 如果(!值){ 返回; } 否则{ 对于(变量行=0;行 我收到“TypeError:无法读取未定义的属性“0”(第18行,文件“代码”)”

我可以通过删除[col]来避免错误,但是代码将访问整行,而不仅仅是第一个单元格


非常感谢您的帮助。

您有几个错误,我真的建议您看一下

然而,您得到的错误位于代码的第二个if语句中。您正在尝试访问以下内容:
值[row-1][col]
。但是,
从0开始,因此该
值[-1][col]
将生成错误。我假设您想从
row=1
开始,但这只是一种推测

试试这个:

function mergeCellValuesVert() {
  
  var spreadsheetId = '1GCJw9mwgi0n84iZ8L4MntBioM5Y1YtxhJ4zatNY1kZw';
  var rangeName = 'A2:H';

  var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName('Sheet1');
  
  var values = sheet.getRange(rangeName).getValues();
  
  if (!values){
    
    return;
    
  }
  else {
    
    for (var row = 1; row < values.length; row ++){
      
      var col = 0;
      
      if(values[row][col] == values[row-1][col]){
        Logger.log('Copy');
        }
      else {
        Logger.log('Unique');
      }
    }
    
  }
  
}
函数mergeCellValuesVert(){ var电子表格ID='1GCJw9mwgi0n84iZ8L4MntBioM5Y1YtxhJ4zatNY1kZw'; var rangeName='A2:H'; var sheet=SpreadsheetApp.openById(spreadsheetId.getSheetByName('Sheet1'); var values=sheet.getRange(rangeName).getValues(); 如果(!值){ 返回; } 否则{ 对于(变量行=1;行第一次迭代似乎失败了。在第一次通过时,
行=0
列=0
,因此在这一行:

if(values[row][col] == values[row-1][col]){
您正在这样做:

if(values[0][0] == values[-1][0]) { ... }
值[-1]
返回未定义,这就是为什么会出现错误。如果要按顺序检查每一行,我建议将行初始化为1,如下所示:

for (var row = 1; row < values.length; row ++){
for(变量行=1;行
这样,您就可以从第二行开始,并且可以检查上一列,而不必获得未定义的