Wpis z mikrobloga

#googlesheet #excel

Cześć, potrzebuję pomocy w edycji skryptu, póki co skrypt kopiuje wartość zaznaczonej komórki do komórki H2, chciałbym aby kopiował więcej komórek w danym wierszu (B-C-D-E-F-G-H-I-J-K-L-M-N-O-P) i pokazywał dane w wierszu 2 (B2-C2 itd),
ponieważ następny arkusz wypełnia się danymi z właśnie drugiego wiersza pierwszego arkuszu - bazy danych. Zapewne muszę posłużyć się opcją offsetu ?

function myFunction() {
var ss= SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getActiveSheet();
var r= s.getActiveCell();
var v= r.getValue();
var r2=s.getRange("H2");
r2.setValue(v);
}
  • 2
  • Odpowiedz
@dawid-wrobel-54966: jeśli dobrze zrozumiałem i chcesz w aktywnym arkuszu kopiować z aktywnego wiersza dane do wiersza 2 (dla pewnego zakresu kolumn) to owszem, offset jest jest jedną z możliwości:

function myFunction() {
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var targetRange = activeSheet.getRange("B2:P2")
targetRange.setValues(targetRange.offset(activeSheet.getActiveCell().getRow()-targetRange.getRow(),0).getValues())
}
  • Odpowiedz
fantastycznie, bardzo dziękuję =) a czy jest taka możliwość aby wykonać taką operację pomijając skrypt czyli wpisując w pozycjach B2;C2 itd =funkcja i tam kopiuj z active rows ? bądź zautomatyzować owy skrypt za pomocą jakiegoś wyzwalacza/trigeru ?

- Poradziłem sobie, ustawiłem triger na zmianę w arkuszu, przy jakiejkolwiek edycji którejkolwiek z komórek następuje wykonanie skryptu więc jest ok.
  • Odpowiedz