If statement 是否有方法检查某个列范围内的特定数据?
我有两本工作手册, 电子表格A有多张相同形式的表格 电子表格B记录将电子表格A中的单元格包含在每张表格(日志)的一行中 电子表格B中的第一列包含电子表格A中所有图纸的超链接。我需要检查排列B中的超链接列,如下所示: 如果A列中存在超链接, 检查电子表格A索引++中的下一张工作表 其他的 将新数据记录在最后一行、、、之后的一行中 我的代码以前有clear()函数,可以从零开始提交到电子表格B,但从执行时间来看,这并不高效。 我正试图操纵我的当前代码,以手动检查现有记录,并基于此逻辑提交新行 你可以忽略所有缺失的代码行,因为我让它工作,我只需要这样做的想法的逻辑,因为我在应用程序脚本方面并不先进。提前感谢你的帮助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-表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个示例截图和说明,以便更好地说明这个想法。。感谢您的热情帮助:)