0

Ich habe eine Google-Tabelle entworfen, um die Effizienz des Materialflusses zu verbessern. Ich möchte die Daten automatisch nach zwei verschiedenen Spalten sortieren, um kritische Teile zu priorisieren, die zuerst empfangen werden müssen, sobald die gesamte Datenzeile eingegeben wurde. Das Problem, das ich habe, ist, dass die Daten sortieren, sobald Sie eine der Spalten eingeben, die ich zum Sortieren aufrufen, aber die Spalten, die ich sortieren möchte, sind nicht die letzte Spalte dieser Datenzeile, die eingegeben werden muss. Ich versuche, eine if-Anweisung zu verwenden, um die Sortierung nicht auszuführen, bis die letzte Spalte eingegeben wurde. Andernfalls wird eine Fehleranweisung ausgegeben, die besagt, dass Sie Daten in diese Spalte eingeben müssen, um fortzufahren. Logischerweise macht der Code für mich Sinn, aber ich habe nur ein ausreichendes Verständnis der Computersprache. Ich erhalte weiterhin einen Fehler in Zeile 10, dass der Bereich nicht gefunden wird. Ich glaube, mein Fehler ist die Syntax beim Versuch, die letzte Spalte aufzurufen. Jede Hilfe wäre sehrAutomatische Sortierung mehrerer Spalten, sobald die gesamte Datenzeile eingegeben wurde

geschätzt werden

**function autosort(){ 
 
    
 
// Variable Declaration 
 
var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
 
    
 
var NewsheetName = SpreadsheetApp.getActiveSheet().getName(); 
 
    
 
var sheetName = sheet.getSheetByName(NewsheetName); 
 
var lastCol = sheetName.getLastColumn(); 
 
var lastColBlank = SpreadsheetApp.getActiveSheet().getRange(lastCol).isBlank() 
 
// Find range to sort 
 
var range = sheetName.getRange("A2:G"); 
 
// Sorting algorithm 
 
if (lastColBlank == false){ 
 
range.sort([6,5]); 
 
    
 
} 
 
    
 
else { 
 
throw ("error: If trailer # is unavailable, please enter N/A"); 
 
    
 
} 
 
}**

Antwort

0

diesen Code Versuchen:

function onEdit() { 

var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var editedCell = sh.getActiveRange().getColumnIndex(); 

    if(editedCell == 2) { 
    var range = sh.getRange("A2:B10"); 
    var blank = range.isBlank() 

    var values = range.getValues(); 
    Logger.log(values) 
    for (var i = 0; i<values.length; i++) { 
    //values.length returns 11 for eleven items 
    // values[10][0] would be the 11th row 1st column 
     Logger.log(values[i][1]) 
    if (values[i][0] == "" || values[i][1] == "") { 
     //throw new Error("error: If trailer # is unavailable, please enter N/A"); 
     var ui = SpreadsheetApp.getUi(); 
     var response = ui.alert('If trailer # is unavailable, please enter N/A'); 
    }else{ 
     range.sort({column: 2}); 
    } 
    } 

    } 
} 

enter image description here

Wenn Sie in den Code schauen werde, die Art hängt von der zweiten zu bearbeitende Spalte. Dann wird der Bereich überprüft, ob die Zelle noch ausgeblendet ist.

Wenden Sie einfach Ihren zusätzlichen Code an, um Ihr Ziel zu erreichen, und ich denke, das wird funktionieren.

Hoffe, das hilft.

Verwandte Themen