Моя цель: я пытаюсь напечатать (или поставить штамп) значение биткойна каждый раз, когда в листе есть слово «printprice».
Моя проблема: мне не удалось получить этокак я пытался получить решение из двух разных кодов
Вот чего я пытаюсь достичь:
function onEdit() {
// simple timestamp -- when a single "T" is entered in a cell, replace it with a timestamp
// see https://productforums.google.com/d/topic/docs/rC6MpQDC7n4/discussion
var cell = SpreadsheetApp.getActiveRange();
if (cell.getValue() == "Timestamp") {
cell.setValue(new Date());
}
}
^ это работает и печатает новую дату каждый раз, когда появляется слово "отметка времени "в любом месте листа.
То, что я пытался сделать, это безуспешно объединить приведенные выше данные с приведенным ниже.
/* USAGE:
* Sheet -> Tools -> Script Editor...
* Paste this script
* Update the map (below) to your preferences
* Create a button in your Sheet and Assign Script: `test`
* et voila profit
*/
function test() {
// maps currencies.tokens to sheet ranges
getPrices({
'USD': {
'ETH': 'G6',
'DASH': 'H6',
'LTC': 'I6',
'GNT': 'J6',
'REP': 'K6',
'BAT': 'L6'
}
});
}
function getPrices(model) {
for (var currency in model) {
var tokens = Object.keys(model[currency]).toString();
var url = 'https://min-api.cryptocompare.com/data/price?fsym=' + currency + '&tsyms=' + tokens;
var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
var json = JSON.parse(response.getContentText());
for (var token in model[currency]) {
updatePrice(
model[currency][token],
json[token]
);
}
}
}
function updatePrice(range, price) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(range).setValue(1/price);
}
Надеемся, что вы можете оказать помощь, как этодля меня это тоже процесс обучения!
С уважением, Йохан