GAS:很难测试 activecell 是否具有特定的范围名称
GAS: Having difficulty testing to see if activecell has a specific rangename
我有一个范围名称为 "source".
的源单元格
我有一些目标(非相邻)单元格,其范围名称为 "target1"、"target2"、"target3".
如果单元格 "source" 被更改,我希望将它的值复制到 3 个目标单元格中。
我遇到了第一个障碍,因为我不知道如何测试我是否正在编辑 "source" 单元格。
所有文档似乎都是关于命名范围而不是使用它们。
到目前为止我有...
function onEdit()
{
var sh = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getActiveRange();
var C = range.getColumnIndex();
var a = sh.getActiveCell();
if( range == "LXbar1" )
{
SpreadsheetApp.getUi().alert('You are HERE!');
}
}
修改后的代码:
function onEdit(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Active range
var eventRange = e.range;
// Active range address
var eventRangeA1 = eventRange.getSheet().getName() + "!" + eventRange.getA1Notation();
// Comparison range name
var sourceRange = ss.getRangeByName("rLXbar1");
// Comparison range address
var sourceRangeA1 = sourceRange.getSheet().getName() + "!" + sourceRange.getA1Notation();
if (eventRangeA1 === sourceRangeA1)
{
// Target range name
var targetRange = ss.getRangeByName("rLamp08");
targetRange.setValue(sourceRangeA1.value);
}
}
不要在 onEdit 触发器中使用 Active
元素,使用内置的 event object 它将确保它在编辑发生时始终使用实际选定的单元格。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var eventRange = e.range;
var sourceRange = ss.getRangeByName("source");
var eventRangeA1 = eventRange.getSheet().getName() + "!" + eventRange.getA1Notation();
var sourceRangeA1 = sourceRange.getSheet().getName() + "!" + sourceRange.getA1Notation();
if (eventRangeA1 === sourceRangeA1) {
SpreadsheetApp.getUi().alert("You are HERE!");
}
};
我有一个范围名称为 "source".
的源单元格
我有一些目标(非相邻)单元格,其范围名称为 "target1"、"target2"、"target3".
如果单元格 "source" 被更改,我希望将它的值复制到 3 个目标单元格中。
我遇到了第一个障碍,因为我不知道如何测试我是否正在编辑 "source" 单元格。
所有文档似乎都是关于命名范围而不是使用它们。
到目前为止我有...
function onEdit()
{
var sh = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getActiveRange();
var C = range.getColumnIndex();
var a = sh.getActiveCell();
if( range == "LXbar1" )
{
SpreadsheetApp.getUi().alert('You are HERE!');
}
}
修改后的代码:
function onEdit(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Active range
var eventRange = e.range;
// Active range address
var eventRangeA1 = eventRange.getSheet().getName() + "!" + eventRange.getA1Notation();
// Comparison range name
var sourceRange = ss.getRangeByName("rLXbar1");
// Comparison range address
var sourceRangeA1 = sourceRange.getSheet().getName() + "!" + sourceRange.getA1Notation();
if (eventRangeA1 === sourceRangeA1)
{
// Target range name
var targetRange = ss.getRangeByName("rLamp08");
targetRange.setValue(sourceRangeA1.value);
}
}
不要在 onEdit 触发器中使用 Active
元素,使用内置的 event object 它将确保它在编辑发生时始终使用实际选定的单元格。
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var eventRange = e.range;
var sourceRange = ss.getRangeByName("source");
var eventRangeA1 = eventRange.getSheet().getName() + "!" + eventRange.getA1Notation();
var sourceRangeA1 = sourceRange.getSheet().getName() + "!" + sourceRange.getA1Notation();
if (eventRangeA1 === sourceRangeA1) {
SpreadsheetApp.getUi().alert("You are HERE!");
}
};