Reputation: 2107
I wonder if there is a more simplified and faster model to send the value of a cell to another spreadsheet.
My actual script:
var sss = SpreadsheetApp.openById('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
var ss = sss.getSheetByName('Valores por Vantagem');
var range = ss.getRange('F1');
var data = range.getValues();
var tss = SpreadsheetApp.openById('BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB');
var ts = tss.getSheetByName('Gerais');
if(ts.getMaxRows() <= data.length) ts.insertRows(2, data.length);
ts.getRange(268, 1, data.length, data[0].length).setValues(data);
Upvotes: 2
Views: 67
Reputation: 27350
A more simplified solution would be the following.
Since you want to copy the value of a single cell, use SetValue
instead of SetValues
and change the range at the end:
var data = range.getValues()
=> var data = range.getValue()
.
Also, replace:
ts.getRange(268, 1, data.length, data[0].length).setValues(data)
with: ts.getRange(268, 1).setValue(data)
.
since data now is a single element.
Finally, you can get rid of if(ts.getMaxRows() <= data.length) ts.insertRows(2, data.length)
.
Solution:
function myFunction(){
var sss = SpreadsheetApp.openById('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
var ss = sss.getSheetByName('Valores por Vantagem');
var range = ss.getRange('F1');
var data = range.getValue();
var tss = SpreadsheetApp.openById('BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB');
var ts = tss.getSheetByName('Gerais');
ts.getRange(268, 1).setValue(data);
}
Upvotes: 1