Описание
Верните информацию о курсах валют за последние несколько дней и заполните таблицу полученными значениями. Здесь представлен макрос для валютной пары USD-EUR, но вы можете получить информацию о других курсах, изменив значение переменной sCurPair («EUR_USD», «BTC_USD» и т.д.).
В этом макросе для получения информации о курсах валют используется сторонний сервис CurrencyConverterApi.com. Существует ограничение на количество запросов в час. При превышении этого лимита макрос работать не будет. Если вы хотите использовать этот макрос, то лучше зарегистрироваться на сайте сервиса и использовать свой ключ в коде макроса.
Вы можете назначить этот макрос автофигуре. При нажатии на нее выполняется макрос, таблица заполняется соответствующими данными и перестраивается соответствующий график.
(function() { var sCurPair = "USD_EUR"; function formatDate(d) { var month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year, month, day].join('-'); } function previousWeek(){ var today = new Date(); var prevweek = new Date(today.getFullYear(), today.getMonth(), today.getDate()-7); return prevweek; } var sDate = formatDate(previousWeek()); var sEndDate = formatDate(new Date()); var apiKey = 'e5ed9f0b2b3aa6f4158f'; var sUrl = 'https://free.currconv.com/api/v7/convert?q=' + sCurPair + '&compact=ultra' + '&date=' + sDate + "&endDate=" + sEndDate + '&apiKey=e5ed9f0b2b3aa6f4158f'; var xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", sUrl, false); xmlHttp.send(); if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var oData = JSON.parse(xmlHttp.responseText); for(var key in oData) { var sheet = Api.GetSheet("Sheet1"); var oRange = sheet.GetRangeByNumber(0, 1); oRange.SetValue(key); var oDates = oData[key]; var nRow = 1; for(var date in oDates) { oRange = sheet.GetRangeByNumber(nRow, 0); oRange.SetValue(date); oRange = sheet.GetRangeByNumber(nRow, 1); oRange.SetValue(oDates[date]); nRow++; } } } })();
Используемые методы: GetSheet, GetRangeByNumber, SetValue.