function addValue() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var sourceCell = sheet.getRange("K3");
var targetCell = sheet.getRange("B11:B14","F11:F12","J11:J14","N11:N14","R11:R13","U3");
var sourceValue = sourceCell.getValue();
var targetValue = targetCell.getValue();
var newValue = Number(targetValue) + Number(sourceValue);
targetCell.setValue(newValue);
}
您想在给定的单元格中输入一个值,单击一个按钮,并将该值添加到给定范围的值中。
步入此脚本,以在多个范围内向每个单元格添加值。 OP应将自己的代码添加到“单击一个按钮”以运行代码。function iterateThroughMultipleRanges() {
const ss=SpreadsheetApp.getActiveSpreadsheet()
const sheet=ss.getSheetByName('Sheet1');
var sourceCell = sheet.getRange("K3");
var sourceValue = sourceCell.getValue();
const ranges = ["B11:B14","F11:F12","J11:J14","N11:N14","R11:R13","U3"]
for (var s=0;s<ranges.length;s++){
const rg=sheet.getRange(ranges[s]);
const vs=rg.getValues();
vs.forEach(function(r,i){
r.forEach(function(c,j){
// Logger.log("DEBUG: i:"+i+", j:"+j+", value = :"+vs[i][j])
vs[i][j]=vs[i][j]+sourceValue
});
})
rg.setValues(vs);
}
}
过程逻辑
ranges
const ranges = ["B11:B14","F11:F12","J11:J14","N11:N14","R11:R13","U3"]
然后循环穿过数组,并获得每个范围和值
每个单元格的添加值
vs[i][j]=vs[i][j]+sourceValue
B
ci j
M | n | o | P | Q | r | S | T | u | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Source=> | 3 | ||||||||||||||||||
1000 | |||||||||||||||||||
10 | 50 | 70 | |||||||||||||||||
5 | 25 | 20 | 60 | 80 | |||||||||||||||
10 | 30 | 30 | 90 | ||||||||||||||||
15 | 35 | 40 | 100 | ||||||||||||||||
20 | 40 | 前 |