J'ai créé la fonction personnalisée suivante pour reproduire une fonctionnalité de type aiguille botte de foin
function ListBy (Range, Range2, needle) {
var holder = [];
if(typeof Range != 'object') {
throw "expected Range for input saw" + typeof Range;
return false;
} for(var i = 0; i < Range.length; i++) {
if(Range[i] == needle) {
holder.Push(Range2[i]);
}
}
return holder;
}
Ce script fonctionne parfaitement lorsqu'il est exécuté sur une seule feuille, par exemple
=ListBy(A1:A5, B1:B5, "needle");
Mais si j’essaie de transmettre des données d’une autre feuille comme
=ListBy('sheet1'!A1:A10, 'sheet1'!A1:A10, "needle")
Je reçois une référence d'erreur de plage. Pourquoi serait-ce le cas?
Vous avez ajouté des guillemets simples aux références de la feuille:
=ListBy('sheet1'!A1:A10, 'sheet1'!A1:A10, "needle")
Si vous quittez ceux-ci:
=ListBy(Sheet1!A1:A10, Sheet1!A1:A10, "needle")
alors votre script fonctionne comme prévu.
Sheet2:
Sheet1: