Google sheets 脚本只能一步一步地工作
这是文件 您将在sheet Key上找到要执行的操作: 在所有工作表中,首先在B列中找到引用键所在的行!B1代表,然后从这一行开始,在C列中找到引用键!B2代表第一 换句话说,我们正在寻找这对夫妇,并将C列中的单元格设为activecell 脚本仅在调试模式下工作 使用工作表键中的按钮运行它,使其不选择好的单元格,即使要选择的单元格已登录到Logger 我使用颜色函数 也就是说,蓝色或红色是要选择的单元格,有时它没有被选择 守则:Google sheets 脚本只能一步一步地工作,google-sheets,google-apps-script,Google Sheets,Google Apps Script,这是文件 您将在sheet Key上找到要执行的操作: 在所有工作表中,首先在B列中找到引用键所在的行!B1代表,然后从这一行开始,在C列中找到引用键!B2代表第一 换句话说,我们正在寻找这对夫妇,并将C列中的单元格设为activecell 脚本仅在调试模式下工作 使用工作表键中的按钮运行它,使其不选择好的单元格,即使要选择的单元格已登录到Logger 我使用颜色函数 也就是说,蓝色或红色是要选择的单元格,有时它没有被选择 守则: function lookFor() { var ss=
function lookFor() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var referSheet=ss.getSheetByName("Key");
var sheetToCheck = new Array;
sheetToCheck[0]=ss.getSheetByName("work");
sheetToCheck[1]=ss.getSheetByName("user");
sheetToCheck[2]=ss.getSheetByName("tax");
sheetToCheck[3]=ss.getSheetByName("cont");
sheetToCheck[4]=ss.getSheetByName("ind");
var referenceB=referSheet.getRange("B1").getValue();
var referenceC=referSheet.getRange("B2").getValue();
//loop to work with all reference as long as there are data in the column A
for (j in sheetToCheck){
sheetToCheck[j].setActiveCell("A1");
var dataToCheck=new Array;
dataToCheck=sheetToCheck[j].getRange(1,2,sheetToCheck[j].getLastRow(),2).getValues();
for (i in dataToCheck){
var done=false;
if (dataToCheck[i][0]==referenceB){
for (k=i;k<dataToCheck.length;k++){
if (dataToCheck[k][1]==referenceC){
//this part is user to change the color of the cell, to check if the code is working well
if (sheetToCheck[j].getRange(parseInt(k)+1,3,1,1).getBackgroundColor()=="red"){
sheetToCheck[j].getRange(parseInt(k)+1,3,1,1).setBackgroundColor("blue");
}
else
{
sheetToCheck[j].getRange(parseInt(k)+1,3,1,1).setBackgroundColor("red");
}
var cell=sheetToCheck[j].getRange(parseInt(k)+1,3,1,1).getA1Notation() ;
sheetToCheck[j].setActiveCell(cell);
SpreadsheetApp.flush();
done=true;
Logger.log("Sheet :"+sheetToCheck[j].getName()+" - Cell :"+cell);
break;
}
}
if (done==true){
break;
}
}
}
}
}
enter code here
我注意到你已经在脚本中修复了这个问题:
var referenceB=referSheet.getRange("B1").getValue(); //A2
var referenceC=referSheet.getRange("B2").getValue(); //B2
以下是您的代码的较短版本:
function LookForCity() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var referSheet = ss.getSheetByName("Key").getDataRange().getValues()[1];
var sheetName = ["work", "user", "tax", "cont", "ind"];
for (j in sheetName){
var sheet = ss.getSheetByName(sheetName[j]);
var values = sheet.getDataRange().getValues();
for(i in values){
if(values[i][1] == referSheet[0] && values[i][2] == referSheet[1]){
Logger.log('Sheet: ' + sheetName[j]+ ' Cell: C'+(parseInt(i)+1) );
sheet.setActiveCell(sheet.getRange(parseInt(i)+1, 3));
Utilities.sleep(3000);
break;
}
}
}
}
我想办法解决这个问题,我加了一个实用程序;故事中的代码很好,我不知道!