Google apps script 从google工作表中当前高亮显示的单元格获取行
我想创建一个数据验证列表,根据当前行自动更新自身。换句话说,我希望在C列中有一个下拉列表,其中包含在C列中为a列中的当前值输入的所有值 我将其放置在我的数据验证列表范围的隐藏列的第1行: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()是任何类型的函数或自定义函数,它将返回您猜到的当前行。我找不到任何可以提供当前
=排序(唯一的(过滤器(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单元格中设置所需的公式(在最后一行中,您可以随意更改)。为了调用该函数,当您打开工作表时,它会安装在下拉菜单中,选择要引用的单元格后,只需单击它。请提供一个电子表格示例。