Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 是否有方法检查某个列范围内的特定数据?_If Statement_Google Apps Script_Google Sheets_Match - Fatal编程技术网

If statement 是否有方法检查某个列范围内的特定数据?

If statement 是否有方法检查某个列范围内的特定数据?,if-statement,google-apps-script,google-sheets,match,If Statement,Google Apps Script,Google Sheets,Match,我有两本工作手册, 电子表格A有多张相同形式的表格 电子表格B记录将电子表格A中的单元格包含在每张表格(日志)的一行中 电子表格B中的第一列包含电子表格A中所有图纸的超链接。我需要检查排列B中的超链接列,如下所示: 如果A列中存在超链接, 检查电子表格A索引++中的下一张工作表 其他的 将新数据记录在最后一行、、、之后的一行中 我的代码以前有clear()函数,可以从零开始提交到电子表格B,但从执行时间来看,这并不高效。 我正试图操纵我的当前代码,以手动检查现有记录,并基于此逻辑提交新行 你可以

我有两本工作手册, 电子表格A有多张相同形式的表格

电子表格B记录将电子表格A中的单元格包含在每张表格(日志)的一行中

电子表格B中的第一列包含电子表格A中所有图纸的超链接。我需要检查排列B中的超链接列,如下所示: 如果A列中存在超链接, 检查电子表格A索引++中的下一张工作表 其他的 将新数据记录在最后一行、、、之后的一行中

我的代码以前有clear()函数,可以从零开始提交到电子表格B,但从执行时间来看,这并不高效。 我正试图操纵我的当前代码,以手动检查现有记录,并基于此逻辑提交新行

你可以忽略所有缺失的代码行,因为我让它工作,我只需要这样做的想法的逻辑,因为我在应用程序脚本方面并不先进。提前感谢你的帮助


电子表格A-表1


电子表格A-表格2


电子表格B


我希望if语句在工作簿B中的“工作表链接”列上运行。。。。如果将工作表#3添加到工作簿A(图1和图2),在提交时,我想检查工作簿B日志中的工作表链接(因为它是唯一的),如果它存在,I++。。。。如果不存在,请在日志中添加第三条记录

for(var index = 2; index < WBA.length; index++) 
  {
    var Sheet   = "https://docs.google.com/spreadsheets/d/WBA ID/edit#gid=";
    var SID     = WBA[index].getSheetId();
    var SheetID = Sheet + SID;
    var Data    = WBB.getDataRange().getValues();

    for(var i = 0; i < Data.length; i++)
    {
      if(Data[i][1] == SheetID)
        i++

      else
      {

    var lastRow = WBB.getLastRow() + 1;

    var Sheets_ID   = new Array()

    Sheets_ID.push( [WBA[index].getSheetId()] )
           WBB.getRange(lastRow,1).setFormula('=hyperlink("https://docs.google.com/spreadsheets/d/WBA ID/edit#gid=' + Sheets_ID +'")');

    var PN_Source    = WBA[index].getRange(6,3,1,1).getValues();      //getRange(row number, column number, number of rows, number of columns)
    var SC_Source      = WBA[index].getRange(8,3,1,1).getValues();
for(var index=2;index
试试这个:

function checkForLink() {
  var ssB=SpreadsheetApp.getActive();
  var sh1=ssB.getActiveSheet();
  var rg1=sh1.getRange(1,1,1,4);
  var vA1=rg1.getValues()[0];
  var hObj={};
  vA1.forEach(function(el,i){if(el){hObj[el]=i;}});
  var linkA=sh1.getRange(2,hObj['Sheet Link']+1,sh1.getLastRow(),1).getValues().map(function(r){return r[0];});
  var ssA=SpreadsheetApp.openById('SSA ID');
  var shts=ssA.getSheets();
  shts.forEach(function(sh,i){
    var vA=sh.getRange(1,1,2,sh.getLastColumn()).getValues();
    var sObj={};
    vA[0].forEach(function(e,i){sObj[e]=i;});
    var shlink=Utilities.formatString('https://docs.google.com/spreadsheets/d/%s//edit#gid=%s',ssA.getId(),sh.getSheetId());
    if(linkA.indexOf(shlink)==-1) {
      sh1.appendRow([vA[1][sObj.date],vA[1][sObj.age],vA[1][sObj.name],shlink]);
    } 
  });
}

我认为举个例子会有帮助spreadsheets@Cooper不幸的是,这是一个非常机密的文件,我不能与任何人共享这两张纸,谢谢你花时间回复:)那么就编一个示例文件吧,因为在这一点上,我很想帮助你,但我不明白你想要完成什么。看看这个人做了什么我想澄清一下他的问题。@Cooper我在下面添加了3个示例截图和说明,以便更好地说明这个想法。。感谢您的热情帮助:)