Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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/5/google-sheets/3.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 从google工作表中当前高亮显示的单元格获取行_Google Apps Script_Google Sheets_Google Sheets Custom Function - Fatal编程技术网

Google apps script 从google工作表中当前高亮显示的单元格获取行

Google apps script 从google工作表中当前高亮显示的单元格获取行,google-apps-script,google-sheets,google-sheets-custom-function,Google Apps Script,Google Sheets,Google Sheets Custom Function,我想创建一个数据验证列表,根据当前行自动更新自身。换句话说,我希望在C列中有一个下拉列表,其中包含在C列中为a列中的当前值输入的所有值 我将其放置在我的数据验证列表范围的隐藏列的第1行: =排序(唯一的(过滤器(C3:C,A3:A=C1,非空的(C3:C‘‘))) 它工作得很好,只是我必须用当前列A值手动更新C1中的值。次优。我希望条件A3:A=C1为A3:A=C+CURRENTROW(),其中CURRENTROW()是任何类型的函数或自定义函数,它将返回您猜到的当前行。我找不到任何可以提供当前

我想创建一个数据验证列表,根据当前行自动更新自身。换句话说,我希望在C列中有一个下拉列表,其中包含在C列中为a列中的当前值输入的所有值

我将其放置在我的数据验证列表范围的隐藏列的第1行:
=排序(唯一的(过滤器(C3:C,A3:A=C1,非空的(C3:C‘‘)))

它工作得很好,只是我必须用当前列
A
值手动更新
C1
中的值。次优。我希望条件
A3:A=C1
A3:A=C+CURRENTROW()
,其中
CURRENTROW()
是任何类型的函数或自定义函数,它将返回您猜到的当前行。我找不到任何可以提供当前单元格或当前行的内容。我尝试了以下自定义函数:

函数CURRENTROW(){
返回SpreadsheetApp.getActiveSheet().getActiveRange().getRow();
}
函数CURRENTROW(){
返回SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
}
函数CURRENTROW(){
返回SpreadsheetApp.getActiveSheet().getCurrentCell().getRow();
}

所有3个变体都返回包含函数的单元格的行号,但我需要用户当前所在的行号。有人能告诉我如何得到这个值吗?非常感谢您的帮助。

根据您的小信息,您可以这样做,但只需在c列中进行编辑并更新D1中的数字即可:

function onEdit(e) {
  if (SpreadsheetApp.getActiveSheet().getActiveRange().getColumn()==3){
    var rownum = SpreadsheetApp.getActiveSheet().getActiveRange().getRow()
    SpreadsheetApp.getActiveSheet().getRange('D1').setValue(rownum); 
  }
}

以下代码适用于您的情况:

函数onOpen(){ var ui=SpreadsheetApp.getUi(); ui.createMenu(“自定义菜单”) .addItem('自定义函数','自定义') .addToUi(); } 函数自定义(){ var currentRow=SpreadsheetApp.getActiveSheet().getActiveCell().getRow(); var formula=“=SORT(唯一(过滤器(C3:C,A3:A=C“+currentRow+”),而不是(ISBLANK(C3:CЮЮ)))”; SpreadsheetApp.getActive().getRange(“A1”).setValue(公式); }
它的作用是在A1单元格中设置所需的公式(在最后一行中,您可以随意更改)。为了调用该函数,当您打开工作表时,它会安装在下拉菜单中,选择要引用的单元格后,只需单击它。

请提供一个电子表格示例。