当前位置: 首页 > 知识库问答 >
问题:

谷歌脚本自动添加日期到谷歌工作表中的列

锺离飞尘
2023-03-14

我试图使用一个谷歌脚本,从GOOGLEFINANCE检索2个证券字段,并将输出保存到Google Sheet文件。我还需要脚本将datetime添加到工作表的第一列。

我创建了一个包含3列的基本Google工作表:

  1. A的格式为DateTime。第1行中有列名称date,第2行之后为空

以下是我的功能:

function myStocks() {

  var sh = SpreadsheetApp.getActiveSpreadsheet();

  sh.insertRowAfter(1);
  sh.getRange("A2").setValue(new Date());

  sh.getRange("C2").setFormula('=GOOGLEFINANCE("GOOG", "price")');
  sh.getRange("D2").setFormula('=GOOGLEFINANCE("GOOG", "pe")');
}

以下是输出:

Date                    price   pe
12/10/2017 22:44:31     1037.05 34.55
12/10/2017 22:43:24     1037.05 34.55

C和D列的输出正确。A列输出错误。每次我运行该函数时,每一行都会在最后一行的上方添加:

  1. 我第一次运行该函数是在2017年10月12日22:43:24,它首先添加了该行
  2. 我第二次运行该函数是12/10/2017 22:44:31,但它将该行添加到工作表中最后一行的上方-我希望它将新行添加到最后一行的下方

有没有一种方法可以使用脚本函数在GoogleSheets中的单个列中自动向下填充日期时间?

共有1个答案

侯焱
2023-03-14

下面的修改如何?

  • sh.insertRowBy(1)表示在1行和2行之间插入一行。
    • 在您的情况下,您可以使用getLastRow()检索最后一行。
    • 这样,值总是导入到第2行

    以上几点反映的脚本如下。

    function myStocks() {
      var sh = SpreadsheetApp.getActiveSheet();
      var lastrow = sh.getLastRow() + 1; // This means a next row of last row.
      sh.getRange(lastrow, 1).setValue(new Date());
      var formulas = [['=GOOGLEFINANCE("GOOG", "price")', '=GOOGLEFINANCE("GOOG", "pe")']];
      sh.getRange(lastrow, 3, 1, 2).setFormulas(formulas);
    }
    
    • 在脚本中,同时导入日期和2个公式。修改后的脚本与此相同。
    • ##########################################################################################
    • 设置值()
    • 设置公式()

    如果我误解了你的问题,请告诉我。我想修改。

 类似资料:
  • 在继续使用GoogleApps脚本构建Google电子表格的过程中,我已经完成了获取Bittrex和Poloniex余额的工作,但无法使用Cryptopia。 下面是我与Bittrex将JSON对象数组映射到字符串的斗争的链接 以下是官方API链接:https://www.cryptopia.co.nz/Forum/Thread/256 以下是一些例子: https://www.cryptopia

  • 我有一个电子表格从谷歌表单收集我的表单回复。 附在这张纸上的是一个脚本,它将每一行都拉出,进行一些计算,并将结果放入另一张纸中。我不是每次都复制整张表,而是用下面的代码拉两张表的增量: 问题是,我还将过滤器应用于接收工作表,并且每当我插入任何新数据时,过滤器范围都不会更新。 有什么办法可以让我绕过这件事吗?作为上面更新函数的一部分,我能否以编程方式更新过滤器范围?

  • 我尝试使用“读取多个范围”示例: https://sheets.googleapis.com/v4/spreadsheets/{SpreadsheetID}/values:batchGet?范围=表1!B:B 来自:Google Sheets API v4示例我用我的电子表格ID替换了"spreadsheetId"。但当我发送GET请求(通过邮递员)我收到: 比我以前https://develop

  • 我有一张保存ID的表。现在,我偶尔需要读取这些ID,并检查表中的其他值(名称)是否仍然符合ID。我的代码是: 从我所读到的,我知道单独调用每个单元格值需要更多的时间。然而,我不知道如何应用getValue来修复这些情况。基本上相同的问题在不同的衣服我有以下代码: 那么我如何使用get值来检查我得到的每个ID呢。我想我得用一些 或者 但我不知道如何实施,有什么想法吗? 有没有其他更有效的方法

  • 我正在建立一个多节问卷(共3),我想有4张来保存数据(一个主和一个为每个部分)。 当一个新行添加到主工作表时,如何将数据从主电子表格发送到另一个工作表,并使其成为动态的,以便它不会每次都拉同一行? 我在网上找到了这个脚本: 脚本链接 但不幸的是,它是用于在工作表之间移动数据的。它能被重塑吗? 谢谢

  • 我试图在我的工作表中创建一个依赖的下拉列表,在Col A中,它将允许您选择区域列表(例如。美洲、非洲、亚洲)等,然后在Col B中显示在Col A中选择的该地区国家的列表。 我尝试使用=间接和=索引/匹配公式,但它们对我超过1000行的工作表不起作用。 我的工作簿中有11个选项卡,但是我只想将数据从“国家”选项卡拉到“主呼叫表”选项卡进行验证。所有其他选项卡都是从主工作表中删除的。 在countr