当我打开Google工作表时,如果其值> 0,我希望将一个特定列中的所有值重置为0。 请注意,有些单元格没有数据,我不想搞砸这些单元格,因为它们应该保持空白。 目前我真的想要建立一个MVP,所以如果我必须在公式中对列的值进行硬编码就可以了。
我做了一些研究并尝试在这里找到相关的例子,我已经调整了一个适用于一个特定单元格的片段,现在我想学习如何自动执行这个脚本,所以我不这样做必须对每个细胞进行硬编码....
这是我的脚本
function onOpen() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var cell = doc.getRange("B4");
var value = cell.getValue();
if (value > 0) {
cell.setValue("0");
}
else {
cell.setValue("0");
}
}
我真的很感激,如果你能帮我解决这个问题,或者向我展示正确的方向,或者向我展示一个有效的例子。
由于
答案 0 :(得分:0)
此代码有效:
//function onOpen() {
function makeZero() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var theSheet = ss.getSheetByName('Sheet 2');
var theLastRow = theSheet.getLastRow();
//Get all values from column A
var theColumnRng = theSheet.getRange(1, 1, theLastRow, 1);
//Get all the values from column A. The return from getValues()
//is a two dimensional array
var theColumnValues = theColumnRng.getValues();
var thisCellValue = "";
var i;
for (i=0;i<theColumnValues.length;i++) {
//Every inner array only has one element, therefore, index zero
thisCellValue = theColumnValues[i][0];
if (thisCellValue > 0) {
theColumnValues[i][0] = 0;
}; //No "else" condition needed. If not greater than zero, do nothing
};
//Reset the entire column's values all at once
theColumnRng.setValues(theColumnValues);
};
答案 1 :(得分:0)
如果要将其与另一列进行比较。 请相应地选择工作表名称,i(行)编号和列编号 (i,2) 2 在这里是列。如果没有 col 则在您的情况下设置 Val2=0 。也不要忘记编辑 setValue。
function ifelse_col_comparision(){
var ss= SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
for(var i=2;i<ss.getLastRow();i++){
var val1=ss.getRange(i,2).getValue();
var val2=ss.getRange(i,3).getValue();
if(val2 >= val1){ss.getRange(i,4).setValue('Bigger or 0');}
else{ss.getRange(i,4).setValue('lower or -1');}
}
}
请询问您是否正在寻找其他东西。