簡體   English   中英

如果值存在於工作表 1 和工作表 2 中,則復制行並將其粘貼到工作表 3。Google 表格。 Google Apps 腳本

[英]Copy row if value exists in both sheet 1 and sheet 2 and paste it to sheet 3. Google Sheets. Google Apps Script

我的腳本的一部分需要幫助。 我在第一張紙上有大量導入的數據列表,其中一列有電話號碼列表。 我想將該列電話號碼與工作表 2 中的一組數字列表進行比較。如果有匹配的數字,請將整行從工作表 1 復制到工作表 3。這是我目前所擁有的。

function copyRowtoSheet3() { 
  var s1 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet1');
  var s2 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet2'); 
  var s3 = SpreadsheetApp.openById("1Aw11LiKzyezfrTQIuTsJPhUFtz8RPqLCc8FlIiy0ZlE").getSheetByName('Sheet3'); 
  var values1 = s1.getDataRange().getValues();
  var values2 = s2.getDataRange().getValues();
  var resultArray = [];
  for(var n=0; n < values1.length ; n++){
    var keep = false;
    for(var p=0; p < values2.length ; p++){
      Logger.log(values1[n][0]+' =? '+values2[p][0]);
      if( values1[n][0] == values2[p][0] && values1[n][1] == values2[p][1]){
        resultArray.push(values1[n]);
        Logger.log('true');
        //break ;
      }
    }
  }  
  s3.getRange(+1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}

我現在所擁有的有點有效,但是它並不完美,因為它似乎只是從第一張紙中復制數字,而不是整行,或者根本不起作用。 我經常收到此錯誤,但並非總是如此。 類型錯誤:無法讀取未定義的屬性“長度”(第 19 行,文件“代碼”)不太確定我做錯了什么。 這里的任何建議都會有所幫助。 作為參考,這是我的工作表的外觀以及我希望此代碼執行的操作。

Sheet1
Name      Phone Number  
John      2142354696
Virge     2345678901
Jason     2412305968
Tiffany   1304086932

Sheet2
Phone Numbers
2142354696
2412305968


Sheet3
John      2142354696
Jason     2412305968

它的工作原理,只有當整個行是類似的,因為If你是比較兩個工作表的兩列的值。

如果在 sheet1 中電話號碼在第二列中,而在 sheet2 中電話號碼在第一列中,正確的做法是比較 sheet1 [row N] [column 1] == sheet2 [row N] [column 0]。 這是唯一要進行的比較,只有感興趣的細胞。

保留所有代碼,只需將If行更改為:

if( values1[n][1] == values2[p][0] ){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM