Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z resetowaniem komórek
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
TaZZo
Witam,

Gdzieś znalazłem skrypt na resetowanie komórek w Exelu i resetuje bardzo dobrze. Dokładniej skrypt podstawia w komórkę wartość 0. Mam z nim problem bo nie znam się na Javascript, i czasami zamiast wartości zero to w całej kolumnie z "0" zmienia na wartość "1". Dlaczego tak się dzieje?

Kod
function modifyCell(cellName) {
  var range = SpreadsheetApp.getActiveSheet().getRange(cellName);
  var toAdd = 0;

  range.setValue(range.getValue() + toAdd);

}

function increaseLine2() {
  modifyCell("B5:B9");
  modifyCell("B11:B22");
  modifyCell("B24:B35");
  modifyCell("B37:B44");
  modifyCell("B46:B50");
  modifyCell("B52:B57");
  modifyCell("B59:B72");
  modifyCell("C5:C9");
  modifyCell("C11:C22");
  modifyCell("C24:C35");
  modifyCell("C37:C44");
  modifyCell("C46:C50");
  modifyCell("C52:C57");
  modifyCell("C59:C72");


}
trueblue
To nie jest JavaScript, lecz Visual Basic.
Funkcja nie służy resetowaniu wartości, ale modyfikacji, ale właściwie nie robi nic, bo do wartości komórki dodaje 0.

Jeśli chcesz zbudować sobie taki skrypt, to nagraj makro i przeanalizuj jego kod.
TaZZo
Chodzi mi o zmodyfikowanie tego skryptu tak aby nie zmieniał na wartość "1". Bo czasami po naciśnięciu przycisku RESET zamiast "0" podstawia "1" i nie wiem czym jest to związane.
trueblue
Dlatego sugerowałem abyś nagrał makro. Zobaczyłbyś jak wygląda wtedy kod kiedy wstawiasz w komórkę wartość "0".
Pewnie nie masz ochoty tego zrobić, to zastanów się do czego służy metoda setValue i co powinieneś w niej zmienić.
TaZZo
Nagrałem to makro i wyszło że podstawia "1" zamiast "0". To co do tej pory mówiłem.

Kod
function Makrobeznazwy() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('B5').activate();
  spreadsheet.getCurrentCell().setValue('1');
  spreadsheet.getRange('C6').activate();
  spreadsheet.getCurrentCell().setValue('1');
  spreadsheet.getRange('B7').activate();
  spreadsheet.getCurrentCell().setValue('1');
  spreadsheet.getRange('C8').activate();
  spreadsheet.getCurrentCell().setValue('1');
  increaseLine2();
};
trueblue
Wstawiaj ręcznie "0" podczas nagrywania.

Zresztą już powinieneś zauważyć co masz zmienić w kodzie z pierwszego postu.
TaZZo
Już znalazłem, dzięki WIELKIE. smile.gif

Haczyki za pomoc poszły.


Temat do ZAMKNIĘCIA. Dziękuje
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.