Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Javascript 动态名称设置,尝试仅打印包含数据的单元格_Javascript_Google Apps Script - Fatal编程技术网

Javascript 动态名称设置,尝试仅打印包含数据的单元格

Javascript 动态名称设置,尝试仅打印包含数据的单元格,javascript,google-apps-script,Javascript,Google Apps Script,在上面的代码中,我的活动工作表包含一个namedRange,它将整个B列设置为名为listDown的namedRange。单元格B1至B10中包含数据1至10。 我正在尝试使用for循环和if语句只打印包含值的数据单元格。 我尝试了以下逻辑: function readNamedRange() { var app = SpreadsheetApp; var activeSheet = app.getActiveSpreadsheet().getActiveSheet();

在上面的代码中,我的活动工作表包含一个namedRange,它将整个B列设置为名为listDown的namedRange。单元格B1至B10中包含数据1至10。 我正在尝试使用for循环和if语句只打印包含值的数据单元格。 我尝试了以下逻辑:

function readNamedRange() {
    var app = SpreadsheetApp;
    var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
    var listDown = activeSheet.getRange("listDown");
    var result = activeSheet.getRange("listDown").getValues();
}

for(var i=0;i我相信您的目标如下

  • 您希望在日志中显示除空单元格以外的单元格值
对于这个,这个修改怎么样

修改点:
  • listDown
    未在脚本中使用
  • getValues()
    检索的值是二维数组。您的范围是一列。
    • 在这种情况下,可以通过
      结果[i][0]
      检索每个值
  • 在脚本中,
    result.length[i]
    始终变为
    undefined
  • console.log(result)
    中,显示
    result
    的所有值
  • 在您的情况下,
    result[i][0]!=”
    可用于if语句
当上述各点反映到脚本中时,它将变成如下所示

修改脚本:
我相信你的目标如下

  • 您希望在日志中显示除空单元格以外的单元格值
对于这个,这个修改怎么样

修改点:
  • listDown
    未在脚本中使用
  • getValues()
    检索的值是二维数组。您的范围是一列。
    • 在这种情况下,可以通过
      结果[i][0]
      检索每个值
  • 在脚本中,
    result.length[i]
    始终变为
    undefined
  • console.log(result)
    中,显示
    result
    的所有值
  • 在您的情况下,
    result[i][0]!=”
    可用于if语句
当上述各点反映到脚本中时,它将变成如下所示

修改脚本:
感谢您提供上述代码。但在此之后出现了新的问题和问题,我们的目标是只打印包含数据的单元格。在日志中,此代码还将打印990个单元格,并在else部分中使用上述语句。我在此处设置了一个中断以更改此代码,但现在如果我留下一个空格并键入任何数据,则将不再打印。@Adam谢谢您或回复。对于给您带来的不便,我深表歉意。从您的脚本中,我认为您希望为空单元格显示
namedRange为空
。您希望只显示除空单元格以外的单元格的值。从您的回复中,我理解为这样。为此,我添加了一个修改后的脚本。您能确认吗?在该脚本中ipt,仅显示除空单元格以外的单元格的值。感谢您提供上述答案。很抱歉,我的问题设置不充分。我刚开始使用appscript,我发现它非常混乱,我使用上述代码段的目标是将上述数据与输出弹出框连接,然后弹出框将创建一个下拉框。@Adam Than谢谢你的回答。没问题。顺便问一下,我能问一下你的情况吗?如果你这个问题中的问题还没有解决,请告诉我。我想考虑一下这个问题。我在一家公司工作,所以我现在无法提供信息。我的想法是让用户在列表中键入数据,然后让数据be打印到对话框弹出窗口(html)内的列表中。感谢您提供上述代码。但此后出现了新的问题和问题,我们的目标是只打印包含数据的单元格。在日志中,此代码还将打印990个单元格,并在else部分中使用上述语句。我在此处设置了一个中断,以更改此设置,但现在如果我留下一个空格并键入任何数据,将不再打印。@Adam谢谢您感谢您的回复。对于给您带来的不便,我深表歉意。从您的脚本中,我以为您希望为空单元格显示
namedRange is empty
。您希望只显示除空单元格以外的单元格的值。从您的回复中,我理解为这样。为此,我又添加了一个修改过的脚本。您能确认吗?在该sc中cript,只显示除空单元格以外的单元格的值。感谢您提供上述答案。很抱歉,我的问题设置不充分。我刚开始使用appscript,我发现它非常混乱,我使用上述代码片段的目的是将上述数据与输出弹出框连接,然后弹出框将创建一个下拉框。@Adam Tha谢谢你的回复。没问题。顺便问一下,我能问一下你的情况吗?如果你这个问题中的问题还没有解决,请告诉我。我想考虑一下这个问题。我在一家公司工作,所以我现在无法提供信息。我的想法是让用户在列表中键入数据,然后获得这些数据可以打印到对话框弹出窗口(html)内的列表中。
for(var i=0; i <result.length; i++){
 if(result.length[i] != "" && result.length[i] != undefined ){
  console.log(result); 
}else{
 console.log("namedRange is empty");
}
}
function readNamedRange() {
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var result = activeSheet.getRange("listDown").getValues();
  for (var i = 0; i < result.length; i++) {
    if (result[i][0] != "") {  // Modified
      console.log(result[i][0]); // Modified
    } else {
      console.log("namedRange is empty");
    }
  }
}
function readNamedRange() {
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var result = activeSheet.getRange("listDown").getValues();
  var end = activeSheet.getLastRow();
  for (var i = 0; i < end; i++) {
    if (result[i][0] != "") {
      console.log(result[i][0]); 
    }
  }
}