我哪里错了? onEdit - Google表格脚本定稿

时间:2015-03-30 05:20:03

标签: google-sheets

我只是想对我的脚本做一些额外的补充。 https://docs.google.com/spreadsheets/d/1I6mDHrXdbvzJwnODPtBEafyBp2tux56NZRHAfB-S9_E/edit?usp=sharing

在表格'显示SCM类别'上 选择E4下拉列表时

如果'更新'那么 F1成为文本'Col1'

如果'SCM类别'那么 F1成为文本'Col4'

如果'公司'那么 F1成为文本'Col6'

我在脚本末尾添加了几行,但我不太明白我哪里出错了。 这样我就可以使用函数

=query({'Newest at Top'!A1:N}, "select * where Col4 contains '"&B1&"' order by '"&F1&"',Col1,Col5",0)

即。因此,我可以使用'“& F1&”'指定要排序的列。

脚本是:

function onEdit(e) {
    var sheets = ['Sanshiro', 'Yujiro', 'Josh', 'Suil', 'Martin','Show SCM Category'],
        cols = [1, 6],
        writeCols = [15, 11],
        ind = cols.indexOf(e.range.columnStart);
    if (sheets.indexOf(e.source.getActiveSheet()
        .getName()) === -1 || ind === -1 || !e.value) return;
    if (ind === 0 && e.value === 'Update') {
        e.range.setValue(new Date());
    } else if (ind === 1) {
        if (e.range.offset(0, 5)
            .getValue() === '') e.range.offset(0, 5)
            .setValue(2);
        if (e.range.offset(0, 9)
            .getValue() === '') e.range.offset(0, 9)
            .setValue(new Date());
       if (e.range.offset(0, -5)
            .getValue() === '') e.range.offset(0, -5)
            .setValue(new Date());
    }
     else if (ind === 1 && e.value === 'Updated') {
        e.range.setValue(Col1); }
       else if (ind === 1 && e.value === 'SCM Category') {
        e.range.setValue(Col4);}
             else if (ind === 1 && e.value === 'Company') {
        e.range.setValue(Col6);
}}

或许有一种更简单的方法可以用= if(ISTEXT ......?

任何帮助都非常感谢!!

1 个答案:

答案 0 :(得分:0)

你可以用公式做到这一点。在F1中,尝试:

=iferror(vlookup(E1, {"Updated","Col1"; "SCM Category" ,"Col4"; "Company" , "Col6" },2,0))

注意:看看你的电子表格,我注意到E1中的下拉,这就是为什么我在公式中使用E1代替E4(你问题中引用的单元格)。