清除一张纸上一列中每一行的内容,取决于另一张纸上同一行中一列中的更改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清除一张纸上一列中每一行的内容,取决于另一张纸上同一行中一列中的更改相关的知识,希望对你有一定的参考价值。
我正在为此代码苦苦挣扎,该代码在同一张纸内完美工作,以使其在两张纸之间工作。例如,如果我更改单元格E5或“ Sheet1”的E列中多个单元格中的内容,这将清除单元格A5或A列中多个单元格中的内容,具体取决于它们所在的行。
function onEdit(e){
var range = e.range;
var row = range.getRow();
// Check if column E and sheet "Sheet1"
if(range.getColumn() == 5 && range.getSheet().getName() == "Sheet1")
{
if(range.getHeight()>1)
{
// Multiple cells selection case
var nbRow = range.getNumRows();
var i;
for(i =0; i < nbRow; i++)
{
var temp = row + i;
e.source.getRange("A"+temp).clear();
}
}
else
{
// One cell selection case
e.source.getRange("A"+row).clear();
}
}
}
你们中的任何人都可以帮我提供代码,使其在两张纸之间工作,因为它已经使我发疯了:/
任何帮助将不胜感激!
答案
更改一张纸会清除另一张纸的范围
function onEdit(e){
var sh=e.range.getSheet();
if(sh.getName()=='Sheet1' && e.range.columnStart==5) {
var sh2=e.source.getSheetByName('Sheet2');
sh2.getRange(e.range.rowStart,1,e.range.rowEnd-e.range.rowStart+1,1).clearContent()
}
}
问题:我应该对代码做什么,使其从第五行开始?前四行被冻结。 (可能是标题信息)
function onEdit(e){
var sh=e.range.getSheet();
if(sh.getName()=='Sheet1' && e.range.columnStart==5 && e.range.rowStart>4) {
var sh2=e.source.getSheetByName('Sheet2');
sh2.getRange(e.range.rowStart,1,e.range.rowEnd-e.range.rowStart+1,1).clearContent()
}
}
动画:
以上是关于清除一张纸上一列中每一行的内容,取决于另一张纸上同一行中一列中的更改的主要内容,如果未能解决你的问题,请参考以下文章