Po wywołaniu funkcji arkusza kalkulacyjnego, na przykład int(f2)
, funkcja działa na wartości w komórce. Jeśli cell("F2")
zawiera 3.14159, wynik byłby 3. Ale gdy zgłoszę inny typ funkcji - na przykład: row(f8)
- funkcja wykonuje odwołanie do komórki, a nie wartości, w tym przypadku, wracając 8.przekazywanie odwołań do komórek do funkcji arkusza kalkulacyjnego
Jak mogę przekonwertować swoją funkcję niestandardową na referencję, a nie na wartość?
Mogę podać ciąg znaków i użyć getRange()
, ale jeśli przeniesię lub zaktualizuję komórki na arkuszu, ciągi znaków nie zmienią się.
Naprawdę prosty przykład:
function GetFormula(cellname) {
return SpreadsheetApp.getActiveSheet().getRange(cellname).getFormula();
}
Mając to w kodzie mojego arkusza, można odzyskać formułę w C4 takiego: =GetFormula("C4")
Ale ten argument jest ciągiem znaków, a wolałbym przejść odwołanie do komórki. Nieco bardziej skomplikowany problem wymaga aktualizacji komórek wywołujących po skopiowaniu i wklejeniu.
Wszelkie pomysły?
Tutaj jest rozwiązanie, a nie rozwiązanie - '= GetFormula (ADDRESS (ROW (F8), kolumna (F8)))' – megabyte1024
To będzie robić to, co chcę, ale, chłopcze, to jest brzydki! Muszę teraz wyjaśnić to każdemu, kto to widzi, wiesz? – HardScale
Powiązany wątek na [webapps.se]: [Jak przekazać zakres do niestandardowej funkcji w Arkuszach kalkulacyjnych Google?] (Http://webapps.stackexchange.com/questions/10629/how-to-pass-a-range- w-a-custom-function-in-google-spreadsheets /) –