Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 如何获取与B列中第一个空单元格相邻的A列的值?_Google Apps Script - Fatal编程技术网

Google apps script 如何获取与B列中第一个空单元格相邻的A列的值?

Google apps script 如何获取与B列中第一个空单元格相邻的A列的值?,google-apps-script,Google Apps Script,我使用此脚本在信息表的A列中查找包含数据的最后一行,然后在数据输入表的B3单元格中显示此值加1。它工作得很好,你可以看到一个示例表 最有效的更改方法是什么,以便它在信息表的B列中找到第一个空单元格,然后在数据输入表的B3单元格中显示其相邻单元格A的值?将其集成到代码中: function valueNextToFirstEmptyCellInColumnB() { var ss=SpreadsheetApp.getActive(); var sh=ss.getActiveSheet();

我使用此脚本在信息表的A列中查找包含数据的最后一行,然后在数据输入表的B3单元格中显示此值加1。它工作得很好,你可以看到一个示例表


最有效的更改方法是什么,以便它在信息表的B列中找到第一个空单元格,然后在数据输入表的B3单元格中显示其相邻单元格A的值?

将其集成到代码中:

function valueNextToFirstEmptyCellInColumnB() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) {
    if(!vA[i][1] && vA[i][1].toString().length==0) {
      //Logger.log(vA[i][0]);
      return vA[i][0];
    }
  }
  return sh.getRange(sh.getLastRow(),1).getValue()+1;
}

function AUTOFILL() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Info');
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data Entry');
  var valueOfData = valueNextToFirstEmptyCellInColumnB();
  sheet2.getRange('B3').setValue(valueOfData);//was adding 1 twice
}
函数值nextToFirstEmptycellinColumnB(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
var vA=rg.getValues();

对于(var i=0;iThanks@Cooper,我正试图将其合并到我现有的脚本中,但我没有任何成功-我得到的结果是“1”。我添加了一个示例表,您能看一下吗?按照它的设置方式,当我单击“自动填充”按钮时,我应该得到数据输入表B3单元格中显示的数字140,因为这是信息表B列中第一个空单元格旁边A列单元格中的值。当然,我会查看链接的位置,然后重试。我现在得到140。我在日志中得到了正确的结果,但是如何让它显示在数据输入表的B3单元格中?您可以看到我在示例表的脚本中尝试了什么。我修复了这个问题问题出在这行:
var rg=sh.getRange(2,1,sh.getLastRow(),2);
应该是这样的:
var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
很抱歉。我还注意到我加了两次1。现在得到的数字正确了。
function valueNextToFirstEmptyCellInColumnB() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getRange(2,1,sh.getLastRow()-1,2);
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) {
    if(!vA[i][1] && vA[i][1].toString().length==0) {
      //Logger.log(vA[i][0]);
      return vA[i][0];
    }
  }
  return sh.getRange(sh.getLastRow(),1).getValue()+1;
}

function AUTOFILL() {
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Info');
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data Entry');
  var valueOfData = valueNextToFirstEmptyCellInColumnB();
  sheet2.getRange('B3').setValue(valueOfData);//was adding 1 twice
}