我正在努力正确设置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列中没有数据时,它不会继续导出。
有人想发光吗??
如前一个回答中所述,您可以使用中断来停止循环。
在您的情况下,这意味着当用户单击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语句有问题吗?感谢您的帮助:)