我正在尝试编写一个脚本,该脚本从电子表格中获取文件名,在驱动器中搜索该文件,然后返回该文件的 ID。
我认为它不喜欢我的查询字符串,但我不确定它出了什么问题。
function SearchDriveFiles (){
var moduleName =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet.getRange("F19").getValue();
var searchFor = 'title contains"'+moduleName+'"';
var names =[];
var fileIds=[];
var files = DriveApp.searchFiles(searchFor);
//iterates through files
while (files.hasNext()) { //This is where the error happens
var file = files.next();
var fileId = file.getId();
fileIds.push(fileId);
var name = file.getName();
names.push(name);}
Logger.log(fileIds);
Logger.log(names);
}
Run Code Online (Sandbox Code Playgroud)
我想记录文件名和 Id,但每次运行该函数时都会收到“无效参数:q”
这是我正在编写的脚本,以帮助我弄清楚如何编写更复杂的脚本。
在我的电子表格中,我有一列包含值列表(“testRange”、“testRangeValues”)。我还有一个下拉列表(“testCell”、“testCellValue”)。下拉列表包含一些在“testRange”列表中的值和一些不在的值。
我希望我的脚本以这样一种方式运行,当我从下拉列表中选择一个与 testRange 列表中的值匹配的值时,testRange 列表中相应值的背景颜色变为红色。
function onEdit3(e) {
var testRange = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A4:A8");
var testRangeValues = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A4:A8").getValues();
var testCell = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("C4");
var testCellValue = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("C4").getValue();
for(var i = 0;i<testRange.length;i++){
if(testCellValue==testRangeValues[i]){
testRange[i].setBackground("Red");
}
}
}
Run Code Online (Sandbox Code Playgroud)
目前没有发生颜色变化。我想我不太确定如何正确编写我的 for 循环/if 语句以达到预期的效果。有没有办法在我的电子表格中使用某种条件格式公式来做到这一点?
for-loop conditional-formatting google-sheets google-apps-script