Описание
Верните информацию о курсах валют за последние несколько дней и заполните таблицу полученными значениями. Здесь представлен макрос для валютной пары 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++;
}
}
}
})();