Google apps script 谷歌工作表功能运行,但不影响工作表内容
我正在使用Google Sheets脚本执行以下操作: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', '
- 遍历指定的工作表,查找在指定列中不包含指定值的行
- 将这些行存储为变量中的一个范围
- 删除所有其他行
- 用存储的行替换图纸内容
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欢迎谢谢你让我知道。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为你的问题和解决方案对他们会有帮助。如果你找不到按钮,尽管告诉我。