【问题标题】:Google Apps Sheets Script .getRange ProblemsGoogle Apps 表格脚本 .getRange 问题
【发布时间】:2017-11-09 13:59:09
【问题描述】:

我只想要一个“hello world”,但经过令人尴尬的几个小时后,它仍然无法正常工作。我是 Javascript 和 Google App 脚本的新手。

这是无法输入“Hello”的简单脚本,如果您有任何提示,我将不胜感激。

正如您在注释行中看到的那样,我已经尝试了很多方法来让我的“Hello”出现,但它们都没有奏效。菜单确实有效。感谢您的帮助

我真正想做的是能够在电子表格中从一个单元格移动到另一个单元格,在那里获取值,将其分配给一个变量。然后在脚本中满足条件后将var值写入单元格。

function onOpen() {
    var ss = SpreadsheetApp.getActive();
    var menuItems = [
    {name: 'Generate Coin Trades', functionName: 'GCTrades_'}
    ];
        ss.addMenu('CoinTrade', menuItems)

function GCTrades_() {
    var ss = SpreadsheetApp.getActive();
    SpreadsheetApp.setActiveSheet(ss.getSheetByName('Prices'));
    sheet.getRange("$H$1").setValue('Hello');

   //settingsSheet.activate();
   // One before the last row that has been entered in the spreadsheet
   // var LastRow = sheet.spreadsheet.getLastRow() -1;  
   // var cell1  SpreadsheetApp.getActiveSheet().getRange(LastRow,16);
   // var cell = spreadsheet.getRange("$H$1");
   // cell.setvalue('Hello')
   //var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   // var cell = sheet.getRange(1655,16);
   // var cell = 'H1655'
   //    cell.setValue("Hello");
   //var count = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4)
   // Spreadsheet.getActiveSheet().getRange(LastRow,16).setvalue('Hello')
   // SpreadsheetApp.getActiveRange().setValue('hello')
  }    

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    有几个拼写错误导致您的脚本无法运行。首先,您的 onOpen 脚本没有关闭。

    function onOpen() {
        var ss = SpreadsheetApp.getActive();
        var menuItems = [
        {name: 'Generate Coin Trades', functionName: 'GCTrades_'}
        ];
            ss.addMenu('CoinTrade', menuItems)
    } // missing closing curly brace.
    

    您使用了sheet.getRange()...,但没有在任何地方定义工作表。您也不需要使用setActive 来编辑工作表,因为您可以逐个单元格地执行此操作。在脚本中定义工作表就足够了。

    定义工作表后,您可以获取范围并设置值。我为第一个单元格保留了您的绝对范围 ($H$1)。然后,我们通过使用.getRow().getColumn() 方法获取位置,为第二个单元格使用相对引用。

    function GCTrades_() {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var sheet = ss.getSheetByName('Sheet1')
        var cell1 = sheet.getRange("$H$1").setValue('Hello');
        var cell2 = sheet.getRange(cell1.getRow(), cell1.getColumn()+1).setValue('World');
    }
    

    【讨论】:

    • 哦,犯罪!那个“}”对我来说是真正的杀手。我怎么会错过呢?嗯,吸取了教训。也感谢 cell1 和 cell2 解决方案。我现在正在使工作表做我想做的事情。伟大的学习继续。问候。
    【解决方案2】:

    试试这个:

    function onOpen() 
    {
      SpreadsheetApp.getUi().createMenu('CoinTrade')
         .addItem('Generate Coin Trades', 'GCTrades_')
         .addToUi();
    }
    
    //This is a private function so it will not show up in script editors function list. If you want it to show up on the function list then remove the trailing underscore      
    function GCTrades_()
    {
      var ss=SpreadsheetApp.getActive();
      var sh=ss.getSheetByName('Prices').activate();//The activate is not required but it will force this sheet to be on top
      sh.getRange("A1").setValue('Hello');//Do not use $s in the range here
    } 
    

    我真正想要的:

    我真正想做的是能够在一个单元格中从一个单元格移动到另一个单元格 电子表格,在那里获取值,将其分配给变量。进而 在满足条件后将 var 值写入单元格 脚本。

    我不清楚你“真正想要”什么。也许,您可以自己开始编写代码并完善您“真正想要”的描述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多