簡體   English   中英

Google App 腳本表 - 如何獲取突出顯示的范圍並將數據寫入其中

[英]Google App script sheets - How to get the highlighted range and write data to it

我想將從我自己的函數生成的數據寫入用戶的突出顯示單元格。 它應該能夠獲取單個單元格和多個單元格的亮點。

   if(isNaN(text))
     ui.alert('Input is not a number');
   else{

     var sheet = SpreadsheetApp.getActiveSheet();
     var activeRangeList = sheet.getActiveRangeList();

     if(activeRangeList==null)
       ui.alert('No range selected');
     else{
       var rgMyRange = sheet.getRange("B1:B10");
       rgMyRange.setValue(myFunc(NumberOfRowsHighlighted,parseInt(text)))
     }
   }

我希望用戶突出顯示一個范圍,當腳本運行時,我需要獲取突出顯示的行數以及要傳遞給 myfunc 的輸入數。 該函數始終生成一個大小與突出顯示行數相同的數組。 最后,我希望能夠使用 ffunction 返回的數組寫回突出顯示的單元格。

myfunct 的樣本返回

[1,2,3,...,100]

我很難閱讀文檔,因為 google 並沒有真正定義什么是 Range 或 RangeList 以及返回數據的示例。 因此,如果有人可以幫助我,將不勝感激。

我已經解決了,使用不同的對象和函數,和第一個有點相似

  var sheet = SpreadsheetApp.getActiveSheet();
  var selection = sheet.getSelection();

  if(selection.getActiveRange().getA1Notation()==null)
    ui.alert('No range selected');

  else{

    var range = SpreadsheetApp.getActiveSpreadsheet().getRange(selection.getActiveRange().getA1Notation());
    range.setValues(GENERATEGROUP(10,parseInt(text)));
  }

我不確定函數GENERATEGROUP(10,parseInt(text))輸出什么,但這里有一個解決方案,它寫入活動范圍內的每個單元格的行和列編號(即用戶選擇)

//es6-V8
function writeActiveRange() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getActiveSheet();
  const rg=sh.getActiveRange();
  let v=rg.getValues();
  const row=rg.getRow();
  const col=rg.getColumn();
  v.forEach(function(r,i){r.forEach(function(c,j){v[i][j]=`Row:${row+i},Col:${col+j}`;});});
  rg.setValues(v);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM