我的脚本部分需要帮助。我在第一页上有一个大的导入数据列表,在一列上有一个电话号码列表。我想将那列电话号码与工作表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);
}
我现在有某种工作原理,但是它并不完美,因为它似乎只复制第一张纸上的数字,而不是整行,或者根本不工作。我经常收到此错误,但并非总是如此。TypeError:无法读取未定义的属性“ length”(第19行,文件“ Code”)。不太确定我在做什么错。这里的任何建议都会有所帮助。作为参考,这是我的工作表的外观以及我希望此代码执行的操作。
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 [行N] [列1] == sheet2 [行N] [列0]。这是唯一要做的比较,只有感兴趣的单元格。
保留所有代码,然后将If
行更改为:
if( values1[n][1] == values2[p][0] ){
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句