Как вы ссылаетесь на столбец данных для ввода в редакторе сценариев Google sheets?

#google-apps-script #google-sheets #google-sheets-formula

Вопрос:

Я нашел скрипт для загрузки цен с рыночной капитализации монет, но в скрипте вы должны индивидуально ввести название монеты в скрипт. Поскольку я, возможно, захочу часто менять имена, мне кажется, что было бы проще «извлечь» имена из списка в столбце. В следующем коде вы вводите каждое имя в строке 21. Есть ли какой-либо способ отредактировать код для любых имен, перечисленных в B2:B10, и ввести эти имена в сценарий? значит, я могу просто отредактировать столбец B вместо сценария?

Заранее спасибо

 enter codefunction coin_price() {
const myGoogleSheetName =
  // Change "Sheet1" to the name of your sheet where you want to run this.
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1')

// Call CoinMarketCap and let them know who you are.
const coinMarketCapAPICall = {
  method: 'GET',
  uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest',
  qs: {
    start: '1',
    limit: '5000',
    convert: 'USD',
  },
  headers: { 'X-CMC_PRO_API_KEY': 'YOUR_API_KEY_GOES_HERE' },
  json: true,
  gzip: true,
}

// Put the coin symbols that you want to follow here.
const myCoinSymbols = ['BTC', 'ETH', 'FIL', 'BTT', 'AMP', 'DOT']

// Let's itereate 
for (let i = 0; i < myCoinSymbols.length; i  ) {
  const coinSymbol = myCoinSymbols[i]
  const coinMarketCapUrl = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=${coinSymbol}`
  const result = UrlFetchApp.fetch(coinMarketCapUrl, coinMarketCapAPICall)
  const txt = result.getContentText()
  const d = JSON.parse(txt)
  const row = i   2
  // Puts a column of at symbols into the sheet at B2.
  myGoogleSheetName.getRange(row, 2).setValue(coinSymbol)
  // Puts a column of current market price's in dollars into the sheet at B3.
  myGoogleSheetName
    .getRange(row, 3)
    .setValue(d.data[coinSymbol].quote.USD.price)
 

Ответ №1:

Вы можете поместить свои символы в столбцы B, например, от B2 до B7, и извлечь их с помощью

 var myCoinSymbols = myGoogleSheetName.getRange('B2:B7').getValues().join().split(',')
 

затем удалите эту строку myGoogleSheetName.getRange(row, 2).setValue(coinSymbol)

Комментарии:

1. Большое спасибо!!