Ahoj,
na uvod: je tu muj prvni script ve spreadsheeet, takze to co tu predvedu jsem se naucil zhruba za 30 minut koukanim po netu. proto se na me nezlobte prosim
dekuji.
funkce makra:
melo by prohledat prvni sloupec a zjistit kde se nachazi hodnota, ktera je totozna s hodnotou v bunce B1. (prvni cyklus - funguje)
po nalazeni radku by to melo zmenit oblast hledani na nalezeny radek a v nem najit prvni prazdnou bunku.
Do teto bunky by melo zkopirovat obsah bunky C1
konec
zda se to jednoduche ale nekde stale delam chybu a nevim kde proto se obracim na vas dekuji.
pozn: to co vypada jako jedna uvozovka jsou dva apostrofy, a jeste upozornim, ze nejde o excel ale o spreadsheet
edit: nasel jsem debuger, a ten hlasi chybu v radku s "address()" ale nevim jak jinak dostat ty souradnice
► Zobrazit spoiler
function zmena() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('sheet2');
var r = s.getRange('Sheet2!A3:A200');
var v = r.getValues();
var o = s.getRange('Sheet2!B1');
var d = o.getValue();
var hodnota = s.getRange('Sheet2!C1');
var u = hodnota.getValue();
var c = '';
var a = '';
var m = '';
for(var i=v.length-1;i>=0;i--)
if(v[1,i]== d)
m = s.getRange('Sheet2!address(i+3,3):address(i+3,30)');;
c = m.getValues();
a=i;
for(var j=c.length-1;j>=0;j--)
if(c[j,a]== '')
ss.getRange('Sheet2!address(i+3,j)').activate();
s.getRange('Sheet2!B1').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
Dodatečně přidáno po 1 hodině 39 minutách 21 vteřinách:tak jsem pokrocil, ale tentokrat jsem se zasekl na funkci values[i,j] nevim jaka je spravna syntaxe pro definovani pozice:/
ani na netu jsem to nedohledal
v kodu je to tato radka: if(c [i,j] == "")
mozna je chyba i nekde jinde protoze script bezi, ale nedela to co chci
dle debugeru to urcite funguje do radku
c = m.getValues(); protoze tam dostavam hodnoty ktere chci
► Zobrazit spoiler
function dokup() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('sheet2');
var r = s.getRange('Sheet2!A3:A200');
var v = r.getValues();
var o = s.getRange('Sheet2!B1');
var d = o.getValue();
var c = s.getRange('Sheet2!B1');;
var a = '';
var m = s.getRange('Sheet2!B1');;
for(var i=v.length-1;i>=0;i--)
if(v[1,i]== d)
m = s.getRange(i+3,3,1,5);
c = m.getValues();
for(var j=1;j<=c.length-1;j+1)
if(c(j)== "")
s.getRange(i+3,j).activate();
s.getRange('Sheet2!C1').copyTo(s.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
j=100;
Dodatečně přidáno po 4 hodinách 46 minutách 43 vteřinách:hotovo vyreseno zamknout muzete