Aşağıdaki kod, E-tabloya bir menü ekleyecektir:
Dedektif> İz Bağımlıları
Bunu seçtiğinizde, aktif hücreye tüm bağımlı hücre referanslarını içeren bir not eklenir.
(Graham tarafından önerilen statik referanslar için arama eklendi)
Etkin hücredeki metni Formüllerde Ara işlevini aramak için traceDependents işlevine benzer bir işlev ekleyebilirsiniz. Bunu senin için bir egzersiz olarak bırakacağım.
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = []
menuEntries.push({name: "Trace Dependents", functionName: "traceDependents"});
ss.addMenu("Detective", menuEntries);
}
function traceDependents(){
var dependents = []
var ss = SpreadsheetApp.getActiveSpreadsheet();
var currentCell = ss.getActiveCell();
var currentCellRef = currentCell.getA1Notation();
var range = ss.getDataRange();
var regex = new RegExp("\\b" + currentCellRef + "\\b");
var formulas = range.getFormulas();
for (var i = 0; i < formulas.length; i++){
var row = formulas[i];
for (var j = 0; j < row.length; j++){
var cellFormula = row[j].replace(/\$/g, "");
if (regex.test(cellFormula)){
dependents.push([i,j]);
}
}
}
var dependentRefs = [];
for (var k = 0; k < dependents.length; k ++){
var rowNum = dependents[k][0] + 1;
var colNum = dependents[k][1] + 1;
var cell = range.getCell(rowNum, colNum);
var cellRef = cell.getA1Notation();
dependentRefs.push(cellRef);
}
var output = "Dependents: ";
if(dependentRefs.length > 0){
output += dependentRefs.join(", ");
} else {
output += " None";
}
currentCell.setNote(output);
}