我哪里错了? onEdit - Google 工作表脚本完成

Where am I going wrong? onEdit - Google sheets script finalizations

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

上sheet'Show SCM Category' 选择E4下拉菜单时

如果'Updated'那么 F1 变成文字'Col1'

如果'SCM Category'那么 F1变成文字'Col4'

如果'Company'那么 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....?

非常感谢任何帮助!!

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

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

注意:查看您的电子表格时,我注意到 E1 中的下拉菜单,因此我在公式中使用 E1 而不是 E4(您的问题中引用的单元格)。