2015-05-09 38 views
0

我对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年工作表,或者该功能是否会自行创建工作表?

回答

1

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

Google Documentation - Custom Menus

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

Help

做一个在“插入图片”上搜索

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

见帖子这样的:

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

+0

感谢您的答复!我试图弄清楚如何做到这一点。我很快发现我对Java并不擅长,并且可以真正使用一些编程帮助。 –

+2

Apps脚本使用JavaScript,它与Java大不相同。许多人想要帮助,但这都是一个问题。有一个平衡。 –

+0

是的,我几乎不了解Javascript。我知道我可能会在这里问很多,我一定会感谢你的帮助。 –