Javascript 通过使用谷歌应用程序脚本检查其他工作表中的状态,更新订单状态谷歌电子表格
我正在努力获取订单的状态,以便在主控表中进行更新。我已在另一张名为“停用表”的表格中断开状态为的订单。当我更新主机时,我需要应用以下逻辑检查这些订单的状态:Javascript 通过使用谷歌应用程序脚本检查其他工作表中的状态,更新订单状态谷歌电子表格,javascript,google-apps-script,google-sheets,spreadsheet,Javascript,Google Apps Script,Google Sheets,Spreadsheet,我正在努力获取订单的状态,以便在主控表中进行更新。我已在另一张名为“停用表”的表格中断开状态为的订单。当我更新主机时,我需要应用以下逻辑检查这些订单的状态: 如果订单已停用&停用表中不可用(&N) 那么订单是实时的 如果订单在退役表中可用,则检查 状态如果已停用,则订单已停用 我用一种完全不同的方式做了这件事,但它对我不起作用。任何帮助都将不胜感激 function pathstatus() { var MasterSs = SpreadsheetApp.openById('ID');
- 如果订单已停用&停用表中不可用(&N) 那么订单是实时的
- 如果订单在退役表中可用,则检查 状态如果已停用,则订单已停用
function pathstatus() {
var MasterSs = SpreadsheetApp.openById('ID');
var MsterSh = MasterSs.getSheetByName('Master Sheet');
var MasterData = MsterSh.getDataRange().getValues();
var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
var DecommisstionData=DecommisstionSh.getDataRange().getValues();
for(var x=0;x<MasterData.length;x++){
var MasterPathName =MasterData[x][2]
var Masterstatus=MasterData[x][6]
var MasterStage=MasterData[x][7]
if(MasterStage == "DECOMMISSIONED"){
for(var i=0;i<DecommisstionData.length;i++){
var DecommisstionPathName = DecommisstionData[i][2]
var DecommisstionStatus = DecommisstionData[i][7]
var DecommissionedDate = DecommisstionData[i][10]
if(DecommisstionPathName == MasterPathName && DecommisstionStatus == "COMPLETED") {
MasterData[x][6]="DECOMMISSIONED"
MasterData[x][12]=DecommissionedDate
}else {
MasterData[x][6]="LIVE"
}
}
}
}
MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
SpreadsheetApp.flush()
}
函数路径状态(){
var MasterSs=SpreadsheetApp.openById('ID');
var MsterSh=MasterSs.getSheetByName(“主工作表”);
var MasterData=MsterSh.getDataRange().getValues();
var decommissionsh=MasterSs.getSheetByName('decommission');
var decommissiondata=decommissionsh.getDataRange().getValues();
对于(var x=0;xYou需要重新表述问题,并更清楚地说明哪些内容不适合您。哪些内容不适合您,您是否收到错误,或者输出是否不是您想要的方式?哪些内容不适合您,您是否收到错误,或者输出是否不是您想要的方式?代码工作正常,但没有反映准确的信息。如果您有获取此数据的另一种方式,如在宏中,我使用类似于countifs的方式获取此数据如果可以,请清理并共享您的工作表,以便我们可以尝试了解您的问题。没有上下文的代码块使您很难完全理解您的问题。“停用”代码中似乎拼写错误。可能是我编辑时出错。请告诉我。
function myFunction() {
var MasterSs = SpreadsheetApp.openById('ID');
var MsterSh = MasterSs.getSheetByName('Master Sheet');
var MasterData = MsterSh.getDataRange().getValues();
var DecommisstionSh = MasterSs.getSheetByName('Decommisstion');
var DecommisstionData=DecommisstionSh.getDataRange().getValues();
MasterData.splice(0,1);
DecommisstionData.splice(0,1);
var Decommisstionpath = [];
var Decommisstionstatus = [];
for(var i=0;i<DecommisstionData.length;i++) {
Decommisstionpath.push(Number(DecommisstionData[i][2]))
Decommisstionstatus.push(DecommisstionData[i][7])
}
var i=0;
for(var x=0;x<MasterData.length && MasterData[x][3] != undefined ;x++) {
var OrderStage = MasterData[x][8]
if(OrderStage=='DECOMMISSIONED') {
var PathName = MasterData[x][2]
var index = Decommisstionpath.indexOf(PathName);
if(index == -1)
{MasterData[x][6]="LIVE" }
else{
MasterData[x][6]="Check"
}
}
}
MsterSh.getRange(2,1,MsterSh.getLastRow(),MsterSh.getLastColumn()).clearContent();
MsterSh.getRange(2,1,MasterData.length,MasterData[0].length).setValues(MasterData)
SpreadsheetApp.flush();
}