【问题标题】:Button to "Archive" rows based on variable基于变量“存档”行的按钮
【发布时间】:2015-07-20 09:35:51
【问题描述】:

我是 Google 表格的新手,我正在寻找一种方法/功能,它允许我创建的按钮将电子表格中的所有条目存档到另一个电子表格。

我目前有一列计算一年中的当前周,另一个手动输入的列是输入条目的一年中的一周。这最终将在输入新行时自动计算,但我要做的是从当前周前几周提取所有条目,并将这些行放入我指定的另一个电子表格中。

我知道这在 Excel 中是可能的,但我在 Google 表格中的编程不是最棒的,所以我正在寻找一些建议/帮助。

编辑: 很快我发现我要么真的很生疏,要么就是不擅长 Java。我尝试了以下代码:

function myArchive() {
   var aYear = getYear()
   var sourceSheet = SpreadsheetApp.getActive()
     .getSheetByName('Payroll'),
   destSheet = SpreadsheetApp.openById('PayrollArchive')
     .getSheetByName(aYear),
   sourceRanges = ['A:A', 'B:B', 'C:C'],
   targetRanges = [7, 9, 12]
     .map(function (r, i) {
        var sr = sourceSheet.getRange(sourceRanges[i]),
            val = sr.getValues();
        destSheet.getRange(1, r, val.length, val[0].length)
            .setValues(val);
        sr.clear()
    });

 }

从这里检索:Is there an easy format to move columns of data by script?

但是,我正在尝试做一些不同的事情。

  • 我想复制所有条目,其中第 1 列包含前一周或之前的第 # 周。例如,当前是一年中的第 21 周。我希望它提取电子表格中第 1 列为 20 或更早的所有条目。不知道如何用 Java 编写当前的一周。

  • 我想将上面拉出的行中的所有信息放入名为 PayrollArchive 的电子表格中名为当前年份的工作表中。因此,前几周的所有行都将放入 PayrollArchive 电子表格的 2015 工作表中。我认为 var aYear = getYear() 是获取当前年份的正确编码,但是是否有可能获取工作表中特定单元格的值来获取它?我已经在电子表格的单元格中保存了当前的周数和日期信息。星期保存在 J1 中,日期保存在 D1:E1 中,作为当前工作周的最后一天。例如:

    =TODAY()-WEEKDAY(TODAY(),3)+6
    
  • 如果我们想在 2016 年的第一周归档 2015 年的最后一周,会发生什么情况?我们如何防止 2015 年的信息进入 2016 年的工作表。

  • 如果工作表不存在,这是否会创建工作表?我目前创建了 2015 工作表,但我需要手动创建 2016 工作表还是该函数会自行创建工作表?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    要向电子表格添加自定义菜单,请参阅文档:

    Google Documentation - Custom Menus

    要插入图像,请打开帮助菜单:

    搜索“插入图片”

    您可以添加自定义菜单,或插入链接到脚本的图像。可能有一个函数或函数组合可以放入电子表格进行存档,从第一个电子表格中获取数据,然后您可以将所有公式复制到值。该方法将使用公式,然后将公式复制到值。这也可以在代码中完成,但你需要编写一个脚本来做到这一点。所以这是可能的。

    查看此类帖子:

    Google Script to copy specific columns from one sheet to another sheet

    Move columns of data by script

    Copy from one sheet to another sheet

    【讨论】:

    • 感谢您的回复!我正试图弄清楚如何做到这一点。我很快发现我不擅长 Java,并且真的需要一些帮助来编程。
    • Apps Script 使用 JavaScript,这与 Java 有很大不同。很多人都想提供帮助,但这只是程度的问题。有一个平衡。
    • 是的,我对 Javascript 几乎一无所知。我知道我在这里可能会问很多问题,我一定会很感激你的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-06-29
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多