从 google 工作表中当前突出显示的单元格中获取行
Get row from currently highlighted cell in google sheets
我想创建一个根据当前行自动更新的数据验证列表。换句话说,我想要 C 列中的下拉列表,其中包含已输入到 C 列中的所有值作为 A 列中的当前值。
我将其放在数据验证列表范围的隐藏列的第 1 行:
=SORT(UNIQUE(FILTER(C3:C,A3:A=C1,NOT(ISBLANK(C3:C)))))
除了我必须用当前列 A
值手动更新 C1
中的值外,它工作得很好。次优。我希望条件 A3:A=C1
为 A3:A=C + CURRENTROW()
,其中 CURRENTROW()
是将 return 当前行 return 的任何类型的函数或自定义函数。我找不到任何可以给我当前单元格或当前行的东西。我尝试了以下自定义函数:
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getActiveRange().getRow();
}
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
}
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getCurrentCell().getRow();
}
所有 3 种变体 return 包含函数的单元格的行号,但我想要用户当前所在的行号。有人可以告诉我如何获得这个价值吗?非常感谢这里的任何帮助。
根据您提供的少量信息,您可以执行类似的操作,但仅在对 c 列进行编辑后才有效,并将更新 D1 中的数字:
function onEdit(e) {
if (SpreadsheetApp.getActiveSheet().getActiveRange().getColumn()==3){
var rownum = SpreadsheetApp.getActiveSheet().getActiveRange().getRow()
SpreadsheetApp.getActiveSheet().getRange('D1').setValue(rownum);
}
}
以下代码适用于您的情况:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Custom function', 'custom')
.addToUi();
}
function custom() {
var currentRow = SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
var formula = "=SORT(UNIQUE(FILTER(C3:C,A3:A=C" + currentRow + ",NOT(ISBLANK(C3:C)))))";
SpreadsheetApp.getActive().getRange("A1").setValue(formula);
}
它的作用是在A1单元格中设置你想要的公式(你可以在最后一行随意更改)。为了调用该函数,当您打开 sheet 时,它会安装在下拉菜单中,在选择要引用的单元格后,您只需单击它即可。
我想创建一个根据当前行自动更新的数据验证列表。换句话说,我想要 C 列中的下拉列表,其中包含已输入到 C 列中的所有值作为 A 列中的当前值。
我将其放在数据验证列表范围的隐藏列的第 1 行:
=SORT(UNIQUE(FILTER(C3:C,A3:A=C1,NOT(ISBLANK(C3:C)))))
除了我必须用当前列 A
值手动更新 C1
中的值外,它工作得很好。次优。我希望条件 A3:A=C1
为 A3:A=C + CURRENTROW()
,其中 CURRENTROW()
是将 return 当前行 return 的任何类型的函数或自定义函数。我找不到任何可以给我当前单元格或当前行的东西。我尝试了以下自定义函数:
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getActiveRange().getRow();
}
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
}
function CURRENTROW() {
return SpreadsheetApp.getActiveSheet().getCurrentCell().getRow();
}
所有 3 种变体 return 包含函数的单元格的行号,但我想要用户当前所在的行号。有人可以告诉我如何获得这个价值吗?非常感谢这里的任何帮助。
根据您提供的少量信息,您可以执行类似的操作,但仅在对 c 列进行编辑后才有效,并将更新 D1 中的数字:
function onEdit(e) {
if (SpreadsheetApp.getActiveSheet().getActiveRange().getColumn()==3){
var rownum = SpreadsheetApp.getActiveSheet().getActiveRange().getRow()
SpreadsheetApp.getActiveSheet().getRange('D1').setValue(rownum);
}
}
以下代码适用于您的情况:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Custom function', 'custom')
.addToUi();
}
function custom() {
var currentRow = SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
var formula = "=SORT(UNIQUE(FILTER(C3:C,A3:A=C" + currentRow + ",NOT(ISBLANK(C3:C)))))";
SpreadsheetApp.getActive().getRange("A1").setValue(formula);
}
它的作用是在A1单元格中设置你想要的公式(你可以在最后一行随意更改)。为了调用该函数,当您打开 sheet 时,它会安装在下拉菜单中,在选择要引用的单元格后,您只需单击它即可。