Google Script - 从单个单元格获取范围

时间:2016-04-13 17:18:47

标签: javascript google-apps-script google-sheets

我遇到一些看起来非常简单的困难,但我无法理解。

单个单元格包含文本“I8:I160”。这是我想在函数中引用的范围的位置。但无论我尝试什么,我似乎无法参考该位置。

  1. 我希望SKUrange引用包含文本I8:I160
  2. 的单元格Cal!G4
  3. 然后SKUsheet引用包含文本Pricelist的单元格Cal!G8!
  4. 然后最终SKU将SKUrange.SKUsheet的范围放在一起(价目表!I8:I160)
  5. 到目前为止我的代码

    function PasteValues() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
    
    // 1.
      var SKUrange = ss.getRange('Cal!G4').getValue();
    // 2.
      var SKUsheet = ss.getRange('Cal!G8').getValue();
    // 3.
      var SKU = ss.getRange('Pricelist!I8:I160'); // this what I want to achieve
    
      var Buy = ss.getRange('Pricelist!A8:A160');
      var Convert = ss.getRange('Cal!G3').getValue();
      var Convertdollars = ss.getRange('Cal!M6').getValue();
      var Converteuros = ss.getRange('Cal!M7').getValue();
      var Sell = ss.getRange('Output!C2:C160');
    
      SKU.copyTo(ss.getRange('Output!A2'), {contentsOnly: true});
      Buy.copyTo(ss.getRange('Output!B2'), {contentsOnly: true});
      Buy.copyTo(ss.getRange('Output!C2'), {contentsOnly: true});
    
    }
    

    这是一个有帮助的屏幕截图 enter image description here

    UPDATD:现在正在运作 - 希望这有助于某人

    function PasteValues() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var SKUrange = ss.getRange('Cal!C4').getValue();
      var SKUsheet = ss.getRange('Cal!C8').getValue();
      var SKU = ss.getRange(SKUsheet + SKUrange); 
      var Buy = ss.getRange('Pricelist!I8:I160');
      var Convert = ss.getRange('Cal!C3').getValue();
      var Convertdollars = ss.getRange('Cal!F4').getValue();
      var Converteuros = ss.getRange('Cal!F5').getValue();
      var Sell = ss.getRange('Output!C2:C160');
    
      SKU.copyTo(ss.getRange('Output!A2'), {contentsOnly: true});
      Buy.copyTo(ss.getRange('Output!B2'), {contentsOnly: true});
      Buy.copyTo(ss.getRange('Output!C2'), {contentsOnly: true});
    

1 个答案:

答案 0 :(得分:1)

如果单元格Cal!G4具有字符串" I8:I160"和单元格Cal!G8有字符串" Pricelist",然后运行代码后

var SKUrange = ss.getRange('Cal!G4').getValue();
var SKUsheet = ss.getRange('Cal!G8').getValue();
var SKU = ss.getRange(SKUsheet + SKUrange); 

变量SKU将指向Pricelist的范围!I8:I160。然后,您可以使用SKU.getValues()来访问其值,依此类推。