执行下 10 行的公式
Execute formula next 10 rows
我有一个 concat_custom
脚本,我想一次执行 10 行。
例如,在这个 sheet 中:
自定义函数:
function concat_custom(s, array) {
array = conformToOneDimensionalArray(array);
return array.filter(function (value) {
return value != "";
}).join("-");
}
function conformToOneDimensionalArray(value) {
if (!Array.isArray(value)) {
value = [value];
}
else if (Array.isArray(value[0])) {
value = value.reduce(function(a, b) {
return a.concat(b);
});
}
return value;
}
我希望 C 列具有文本 Ted-John
而不是 =concat_custom("-",A1:B1)
,因此 C 列将独立于 A & B
。在此示例中,我如何一次处理 10 行?
我希望能够通过定时触发器每分钟处理 10 行。所以它检查最后一行然后从那里继续。
试试这个:
function withadash() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var nextrow=getNextRowInColumn3();
if(nextrow>0) {
var rg=sh.getRange(nextrow,1,10,3);
var vA=rg.getValues()
for(var i=0;i<vA.length;i++) {
vA[i][2]=vA[i][0]+'-'+vA[i][1];
}
rg.setValues(vA);
}
}
function getNextRowInColumn3() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(1,3,sh.getLastRow(),1);
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][0]) {
return i+1;
}
}
return 0;
}
我有一个 concat_custom
脚本,我想一次执行 10 行。
例如,在这个 sheet 中:
自定义函数:
function concat_custom(s, array) {
array = conformToOneDimensionalArray(array);
return array.filter(function (value) {
return value != "";
}).join("-");
}
function conformToOneDimensionalArray(value) {
if (!Array.isArray(value)) {
value = [value];
}
else if (Array.isArray(value[0])) {
value = value.reduce(function(a, b) {
return a.concat(b);
});
}
return value;
}
我希望 C 列具有文本 Ted-John
而不是 =concat_custom("-",A1:B1)
,因此 C 列将独立于 A & B
。在此示例中,我如何一次处理 10 行?
我希望能够通过定时触发器每分钟处理 10 行。所以它检查最后一行然后从那里继续。
试试这个:
function withadash() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var nextrow=getNextRowInColumn3();
if(nextrow>0) {
var rg=sh.getRange(nextrow,1,10,3);
var vA=rg.getValues()
for(var i=0;i<vA.length;i++) {
vA[i][2]=vA[i][0]+'-'+vA[i][1];
}
rg.setValues(vA);
}
}
function getNextRowInColumn3() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange(1,3,sh.getLastRow(),1);
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][0]) {
return i+1;
}
}
return 0;
}