Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌工作表功能运行,但不影响工作表内容_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌工作表功能运行,但不影响工作表内容

Google apps script 谷歌工作表功能运行,但不影响工作表内容,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在使用Google Sheets脚本执行以下操作: 遍历指定的工作表,查找在指定列中不包含指定值的行 将这些行存储为变量中的一个范围 删除所有其他行 用存储的行替换图纸内容 脚本运行时不会出错,但不会影响图纸内容。我不确定问题是什么-任何反馈都很感谢 以下是脚本: function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('Clear OI') .addItem('Clear OI', '

我正在使用Google Sheets脚本执行以下操作:

  • 遍历指定的工作表,查找在指定列中不包含指定值的行
  • 将这些行存储为变量中的一个范围
  • 删除所有其他行
  • 用存储的行替换图纸内容
脚本运行时不会出错,但不会影响图纸内容。我不确定问题是什么-任何反馈都很感谢

以下是脚本:

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Clear OI')
      .addItem('Clear OI', 'removeZeroOI')
      .addToUi();
}

function removeZeroOI() {

  // Deleting Rows Based on Cell Values
 
  //GLOBALS
  
  var SS = SpreadsheetApp.openById("mySheetID");
  var SHEET = SS.getSheetByName("mySheetName");
var RANGE = SHEET.getDataRange();
  
  
  var DELETE_VAL = 0;
  var COL_TO_SEARCH = 13; //column N
  
  function main() {
    
    var startTime = new Date().getTime();
    
    var deleteSelectedRows = removeFilterSetVals();
    
    var runTime = (new Date().getTime() - startTime)/1000;
    Logger.log("Runtime is: "+runTime + " seconds");
  };
  
  function removeFilterSetVals(){
    var rangeVals = RANGE.getValues();
    
    var filteredRange = rangeVals.filter(function(val){
      
      return val[COL_TO_SEARCH] != DELETE_VAL ;
    });
    
    RANGE.clearContent();
    
    var newRange = SHEET.getRange(1,1,filteredRange.length, filteredRange[0].length);
    newRange.setValues(filteredRange);
  };
  
}

如果您实际使用的是显示脚本,我认为在您的脚本中,当运行
removeZeroOI()
函数时,
main()
removeFilterSetVals()
不会运行。这样,脚本在没有错误发生的情况下无法工作

当您想运行
main()
removeFilterSetVals()
时,下面的修改如何

修改脚本:
函数removeZeroOI(){
var SS=电子表格应用程序.openById(“mySheetID”);
var SHEET=SS.getSheetByName(“mySheetName”);
var RANGE=SHEET.getDataRange();
var DELETE_VAL=0;
var COL_TO_SEARCH=13;//列N
main();//已添加
函数main(){
var startTime=new Date().getTime();
var deleteSelectedRows=removeFilterSetVals();
var runTime=(new Date().getTime()-startTime)/1000;
log(“运行时为:“+Runtime+”秒”);
};
函数removeFilterSetVals(){
var rangeVals=RANGE.getValues();
var filteredRange=rangeVals.filter(函数(val){
返回val[COL_TO_SEARCH]!=删除val;
});
RANGE.clearContent();
var newRange=SHEET.getRange(1,1,filteredRange.length,filteredRange[0]
.长度);
newRange.setValues(filteredRange);
};
}
以及

函数removeZeroOI(){
var SS=电子表格应用程序.openById(“mySheetID”);
var SHEET=SS.getSheetByName(“mySheetName”);
var RANGE=SHEET.getDataRange();
var DELETE_VAL=0;
var COL_TO_SEARCH=13;//列N
var startTime=new Date().getTime();
//“removeFilterSetVals()”的脚本放在这里。
var rangeVals=RANGE.getValues();
var filteredRange=rangeVals.filter(函数(val){
返回val[COL_TO_SEARCH]!=删除val;
});
RANGE.clearContent();
var newRange=SHEET.getRange(1,1,filteredRange.length,filteredRange[0]
.长度);
newRange.setValues(filteredRange);
var runTime=(new Date().getTime()-startTime)/1000;
log(“运行时为:“+Runtime+”秒”);
}

我运行了您提供的第二个mod,它运行得非常好。感谢you@jivers欢迎谢谢你让我知道。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为你的问题和解决方案对他们会有帮助。如果你找不到按钮,尽管告诉我。