Google sheet - skrypt czasami działa czasami nie

Użytkowanie arkusza kalkulacyjnego
krzys59
Posty: 79
Rejestracja: pt cze 19, 2009 2:59 pm

Google sheet - skrypt czasami działa czasami nie

Post autor: krzys59 »

Dzień dobry
Wiem, że to forum OpenOffice ale próbuję znaleźć odpowiedź w różnych miejscach, jeśli admin uzna za niestosowne pytanie, proszę skasować post :D
O ile makra w OpenOffice jakoś mi wychodzą to w google sheet poległem.
Potrzebuję zrobić arkusz dostępny do edycji dla każdego z linkiem, ale z wbudowanym mechanizmem że kto pierwszy wypełni jakąś niepustą komórkę, ten lepszy. Czyli jak ktoś coś w pisze w komórce to zostanie zablokowana do edycji. Puste komórki mają być dostępne do edycji aż ktoś inny coś wpisze
Ponieważ zupełnie czuję skryptów google poprosiłem o pomoc ChatGPT i ten mi podał następujący kod:

Kod: Zaznacz cały

function onEdit() {
  var sheet = e.source.getActiveSheet(); // Aktywny arkusz
  var range = e.range; // Zmodyfikowana komórka
  var value = e.value; // Nowa wartość wprowadzonej komórki

  // Sprawdź, czy wprowadzono dane (nie pusty tekst)
  if (value !== "" && value !=="") {
  //if (value !== null && value !== "") {
    // Ustaw komórkę jako tylko do odczytu
    var protection = sheet.getRange(range.getRow(), range.getColumn()).protect();
    protection.setDescription("Komórka zablokowana po edycji.");
  }
}
Ustawiam w regułach, żeby funkcja onEdit była uruchamiana przy starcie arkusza, nadałem uprawnienia itd, po restarcie arkusza funkcja raz działa a 100 razy nie działa, a jak już zadziała to w jednej dwóch komórkach a potem znowu nie działa.
Żeby mieć pewność, że przy każdej edycji komórki funkcja startuje dodałem na początku krótki kod

Kod: Zaznacz cały

var ui = SpreadsheetApp.getUi(); // Pobranie interfejsu użytkownika
  ui.alert("Uwaga", "Test otwarcia.", ui.ButtonSet.OK);
i za każdym razem jak edytuję komórkę to wyświetla się okno z ostrzeżeniem a dalsza część kodu nie działa.
Podpowiedzcie proszę o co w tym chodzi? Ja już nic z tego nie rozumiem :oops: :oops: :oops:
Awatar użytkownika
Jermor
Posty: 2446
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Google sheet - skrypt czasami działa czasami nie

Post autor: Jermor »

Nie udzielę ci porady związanej z kodem.
Być może problem dotyczy stanu arkusza. W Calc-u czy Excelu wszystkie komórki arkusza mają początkowo ustawiony status "komórka zablokowana". Można włączać i wyłączać blokadę komórki. Status komórki może być ustanawiany zawsze, ale jego efekt będzie widoczny dopiero po włączeniu ochrony arkusza. Więc przy normalnym podejściu należy najpierw odblokować wszystkie te komórki, do których można dokonywać wpisu, a następnie zablokować cały arkusz. Jeśli arkusz nie jest blokowany, to można wpisywać dane do każdej komórki bez względu na jej status.
AOO 4.1.15, LO 25.2.4 (x64) na Windows 11 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ