当前位置: 首页 > 知识库问答 >
问题:

IF语句的顺序问题Google Script

单品
2023-03-14

我正在努力正确设置IF语句,基本上我想检查J列中是否有数据,如果为空,继续脚本的其余部分,如果有数据,询问用户是否希望继续,然后根据他们的响应继续或终止。

以下是我的代码的开头:

function exportSg() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Subgrade'); //source sheet
  var testrange = sheet.getRange('J18:J'); //range to check
  var testvalue = (testrange.getValues());
  var ui = SpreadsheetApp.getUi();
  
  for (i=0; i<testvalue.length;i++) {
  if ( testvalue[i] != "") {
  
  var response = ui.alert("Gaps greater than 50 meters identified in report, unhide column J to identify. \n\n Do you want to cancel the export?",ui.ButtonSet.YES_NO);
  Logger.log(response);
  
  if (response == ui.Button.YES) {
  SpreadsheetApp.getActive().toast("Export Cancelled...")}else {

SpreadsheetApp.getActive().toast("Exporting Subgrade Report...");

问题似乎是当J列中没有数据时,它不会继续导出。

有人想发光吗??

共有1个答案

年业
2023-03-14

如前一个回答中所述,您可以使用中断来停止循环

在您的情况下,这意味着当用户单击YES按钮时Rest一下:

if (response == ui.Button.YES) {
  SpreadsheetApp.getActive().toast("Export Cancelled...");
  break;
}

如果要导出,即使for语句没有要使用的数据,也需要将导出部分移到它的外部:

function exportSg() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Subgrade'); //source sheet
  var testrange = sheet.getRange('J18:J'); //range to check
  var testvalue = (testrange.getValues());
  var ui = SpreadsheetApp.getUi();

  var shouldExport = true;
  for (i=0; i<testvalue.length;i++) {
    if ( testvalue[i] != "") {
      var response = ui.alert("Gaps greater than 50 meters identified in report, unhide column J to identify. \n\n Do you want to cancel the export?",ui.ButtonSet.YES_NO);
      Logger.log(response);
  
      if (response == ui.Button.YES) {
        SpreadsheetApp.getActive().toast("Export Cancelled...");
        shouldExport = false;
        break;
      }
    }
  }

  if (shouldExport) {
    myExportFunction();
  }

}
 类似资料:
  • 代码: 作业: 在直角三角形中,最长边长度的平方等于其他两条边长度的平方之和。编写一个程序,提示用户输入三角形三条边的长度,然后输出一条消息,指示三角形是否为直角三角形。无论输入三条边的长度顺序如何,该程序都可以正常工作。 我的问题:代码无法编译,找到:变量,必需:值 另外:我不知道如何制作,这样程序就可以知道三角形是否正确,即使边没有按顺序给出。请帮忙,我是一个初学者,在这项作业上有很多困难。

  • 问题内容: 如果您有一个if语句,其中对多个变量或函数进行了评估,那么按什么顺序对其进行评估? 在这种特定情况下,是将foo相对于5评估,然后将6相对于吧(从左至右)进行评估,还是将其从右至左进行评估?我假设a和以相同顺序求值。 问题答案: 如果第一个是,则将首先评估left子句,然后评估第一个。 这就是为什么您可以执行以下操作的原因: 没有破坏。 相反,对于子句,只有第一个为:时,将评估righ

  • 我刚刚开始学习,我的输出似乎接受第二个if语句为真,即使我的输入大于200。我已经在这里呆了几天了,如果这里有人愿意检查我的代码,那对我来说是很好的。 这是我的代码:

  • 问题内容: 在Python中,我们可以这样做: 有人可以指出我有关此功能的文档吗? 它是语言的实现细节或功能吗? 利用此功能是否很好? 问题答案: 在和 短路 ,请参见布尔操作文档: 表达式首先计算; 如果为假,则返回其值;否则,将求值并返回结果值。 表达式首先计算; 如果为true,则返回其值;否则,将求值并返回结果值。 注意如何,对,是 只有 当评估计算为一个真正的价值。相反,for ,仅当评

  • 我在研究手机导航。我对简单的if/else如何工作的理解肯定有根本性的错误(我已经有一段时间没有使用jQ/js了),因为这两个语句是串行执行的。实际上‘else’首先运行,然后——不管我是否包含‘toggleNav()’函数或$(nav)。toggleClass('open') -然后也执行' if '语句。 我认为这可能与事件有关,所以我尝试了两个li上的函数。仪表板切换导航和(a.dashbo

  • 我制作了这个简单的GUI程序,它可以计算特定字符序列的元音和辅音。计数器还可以,但是我对if-else语句有一个问题,当那个字符既不是元音也不是辅音时,我必须显示一条消息...代码如下: 它看起来是这样的: 我输入了一个没有任何特殊字符或数字的字符“序列”。但它仍然显示消息,其中它有元音和辅音以外的其他字符。if-else语句有问题吗?感谢您的帮助:)