如何获取最后一行并复制所需的列

时间:2016-10-25 20:07:21

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

我欢迎任何帮助,让脚本在Form onSubmit上工作,然后从工作表'New Orders'中取出最后一行(New Form提交的信息),然后将所需的列复制到'DIBOND ORDERS'表中,这样它会自动将新客户订单所需的产品放入要从不同供应商处订购的所需订单。

由于我们有几个不同的服装供应商,路面展台,展示产品。

我当前的代码是

   function onEdit() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = ss.getActiveRange();
if(s.getName() == "New Orders" && r.getColumn() == 5 && r.getValue() == "DIBOND") {

    var row = r.getRow();

    var numColumns = s.getLastColumn();

    var TSS = ss.getSheetByName("DIBOND ORDERS");
             var lastRow = TSS.getLastRow()+1;
      var cntr = 0
    s.getRange(row,2).copyTo(TSS.getRange(lastRow + cntr,1), {contentsOnly:true});
    s.getRange(row,5).copyTo(TSS.getRange(lastRow + cntr,2), {contentsOnly:true});
    s.getRange(row,6).copyTo(TSS.getRange(lastRow + cntr,4), {contentsOnly:true});
    s.getRange(row,4).copyTo(TSS.getRange(lastRow + cntr,8), {contentsOnly:true});
    s.getRange(row,7).copyTo(TSS.getRange(lastRow + cntr,5), {contentsOnly:true});
    s.getRange(row,8).copyTo(TSS.getRange(lastRow + cntr,6), {contentsOnly:true});
    s.getRange(row,9).copyTo(TSS.getRange(lastRow + cntr,7), {contentsOnly:true});
    //s.deleteRow(row);
}}

如果我在工作表上作为编辑功能但无法将其激活为表格提交功能,则此作品完美。

我一直在尝试找到一种方法来删除活动工作表,活动范围...使用

设置获取最后一行
 SpreadsheetApp.openById("ID").getRangeByName("New Orders");

开始认为它无法完成或我遗失了一些东西。

真的很感激任何帮助。

提前谢谢拉塞尔。

1 个答案:

答案 0 :(得分:0)

这将获得活动电子表格上的最后一行(调用了一个onEdit)和名为“DIBOND ORDERS”的工作表。

using System;
using System.IO;
using System.Linq;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;

namespace SandboxConsole
{
    class Program
    {
        public static void Main()
        {
            var text = File.ReadAllText("MyClass.cs");
            var tree = CSharpSyntaxTree.ParseText(text);

            var method = tree.GetRoot().DescendantNodes()
                         .OfType<MethodDeclarationSyntax>()
                         .First(x => x.Identifier.Text == "ComplexMethodV");

            Console.WriteLine(method.ToFullString());
            Console.ReadLine();
        }
    }
}