Javascript 范围A4:A100不使用Google脚本中的.getRange

Javascript 范围A4:A100不使用Google脚本中的.getRange,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,它一直在使用value=thisSheet.getRange(“A4”).getValue()但当我将其更改为范围“A4:A100” 这是我的代码: function EqualValue() { var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value; sheetsToExclude = ['Template','Summary','Count']; var ss = SpreadsheetApp.g

它一直在使用
value=thisSheet.getRange(“A4”).getValue()但当我将其更改为范围
“A4:A100”

这是我的代码:

function EqualValue() {
  var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value;

  sheetsToExclude = ['Template','Summary','Count'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  allSheetTabs = ss.getSheets();

  L = allSheetTabs.length;

  for (i=0;i<L;i++) {
    thisSheet = allSheetTabs[i];
    thisSheetName = thisSheet.getName();

    //continue to loop if this sheet is one to exclude
    if (sheetsToExclude.indexOf(thisSheetName) !== -1) {continue;}

    value = thisSheet.getRange("A4:A100").getValue();
    if(value >= "15") sendEmail(value)
  } 
函数EqualValue(){
变量allSheetTabs、i、L、thisSheet、thisSheetName、sheetsToExclude、value;
sheetsToExclude=['Template'、'Summary'、'Count'];
var ss=SpreadsheetApp.getActiveSpreadsheet();
allSheetTabs=ss.getSheets();
L=所有板材长度;
对于(i=0;i=“15”)发送电子邮件(值)
} 

任何建议都非常受欢迎

我运行了与此完全相同的功能:

function EqualValue() {
  var allSheetTabs,i,L,thisSheet,thisSheetName,sheetsToExclude,value;

  sheetsToExclude = ['CheckBoxes','Globals'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  allSheetTabs = ss.getSheets();

  L = allSheetTabs.length;

  for (i=0;i<L;i++) {
    thisSheet = allSheetTabs[i];
    thisSheetName = thisSheet.getName();

    //continue to loop if this sheet is one to exclude
    if (sheetsToExclude.indexOf(thisSheetName) !== -1) {continue;}

    value = thisSheet.getRange("A4:A100").getValue();
    Logger.log('%s-The value in %s is %s',i+1,thisSheet.getRange('A4:A100').getA1Notation(),value)
    if(value >= "4") Logger.log('%s-The value in %s is %s and it is greater than or equal to 4',i+1,thisSheet.getRange('A4:A100').getA1Notation(),value);
  }
}
我用了“4”而不是“15”。我以为它会返回左上角的单元格,但它确实返回了。因此,可能是您的
发送电子邮件(值)
功能。

您说“列A是行”,但A是列。我假设您的意思是,每个选项卡的A列都有一个值列表。同时假设每天都有一个新值添加到底部的列表(?)。当您将该值与发送电子邮件的15进行比较时,您如何知道哪个选项卡

我已经在sendEmail功能中添加了选项卡名称,您应该能够理解这一点

function EqualValue() {
  try {
    var sheetsToExclude = ['Template','Summary','Count'];
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var allSheetTabs = ss.getSheets();
    for( var i=0; i<allSheetTabs.length; i++ ) {
      var sheet = allSheetTabs[i];
      if( sheetsToExclude.indexOf(sheet.getName()) >= 0 ) continue;
      // I'm assuming you keep adding to A column and only want the last one?
      var values = sheet.getRange(sheet.getLastRow(),1,1,1).getValue();
      if( value >= 15 ) {
        sendEmail(sheet.getName(),value);  // You will get an email for every tab that passes test
      }
    }
  }
  catch(err) {
    SpreadsheetApp.getUi().alert(err);
  }
}
函数EqualValue(){
试一试{
var sheetsToExclude=['Template','Summary','Count'];
var ss=SpreadsheetApp.getActiveSpreadsheet();
var allSheetTabs=ss.getSheets();
对于(var i=0;i=0)继续;
//我假设你一直添加到一个列,只想要最后一个?
var values=sheet.getRange(sheet.getLastRow(),1,1,1).getValue();
如果(值>=15){
sendEmail(sheet.getName(),value);//通过测试的每个选项卡都会收到一封电子邮件
}
}
}
捕捉(错误){
SpreadsheetApp.getUi().alert(错误);
}
}

不确定您要做什么。您正在请求一个范围,但只有getValue(),您是指getValue()?如果是这样的话,它将返回一个2D数组,所以不确定要对照“15”检查什么。你是说15岁吗?如果您想检查A4:A100中的值“s”,您需要在数组中循环并测试每个值[i][0],其中i为0到行数-1?实际上,每天都是一个新行。我想检查a行(股票)中的数字是否大于15@他们知道你说的“环进通”是什么意思?你想只检查最近一天>15吗?只发送1封电子邮件?是。我不希望它发送前几天的电子邮件@TheWizEd,如果已经发送了电子邮件,也许可以解释为什么是A4:A100。也许我能弄明白你想要什么。那么你需要什么A4:A100因为它永远都是A4?我并不是说这样做是明智的。我刚刚注意到它将返回左上角的单元格值。我甚至见过有人这样做
sh.getRange(“A4”).getValues()
,这也会返回值[0][0]中的值。我只是运行代码来验证所述的问题。这就是我想的全部要点。我明白了。这很有道理。你是说你怎么知道哪个标签通过了测试?这是我的下一步。获取选项卡的名称并将其添加到电子邮件的主题和正文中
function EqualValue() {
  try {
    var sheetsToExclude = ['Template','Summary','Count'];
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var allSheetTabs = ss.getSheets();
    for( var i=0; i<allSheetTabs.length; i++ ) {
      var sheet = allSheetTabs[i];
      if( sheetsToExclude.indexOf(sheet.getName()) >= 0 ) continue;
      // I'm assuming you keep adding to A column and only want the last one?
      var values = sheet.getRange(sheet.getLastRow(),1,1,1).getValue();
      if( value >= 15 ) {
        sendEmail(sheet.getName(),value);  // You will get an email for every tab that passes test
      }
    }
  }
  catch(err) {
    SpreadsheetApp.getUi().alert(err);
  }
}