簡體   English   中英

使用Google腳本從Google表格中的單元格列表獲取數組

[英]Using Google Script to get an array from a list of cells in google sheet

如何創建Google表格中一組單元格中的值數組?

該數組應與單元格具有相同的行和列,並且其值應與工作表中每個位置的值相同。

另外,我希望能夠將數組的范圍作為參數傳遞,以便可以將函數用於不同的范圍。

編輯2:新的代碼,幾乎可以正常工作,我只需要讓它從Google表格本身的用戶輸入中接收范圍即可。 這就是我要嘗試的工作,但是起步很努力,我無法傳遞范圍的選擇,無法更新單元格並運行功能。

另外,即使我嘗試在不帶任何參數的情況下預置函數范圍,我幾乎每次都遇到參考錯誤的問題

function sortingtest(pWO, pInfo, pSearch) {
    var WO = SpreadsheetApp.getActiveSpreadsheet().getRange(pWO).getValues();
    var Info = SpreadsheetApp.getActiveSpreadsheet().getRange(pInfo).getValues();
    var Search = SpreadsheetApp.getActiveSpreadsheet().getRange(pSearch).getValues();
    //[row][column]

    var FinalArray1 = [];
    var FinalArray2 = [];
    var FinalArray3 = [];
    var LastArray = [];
    var a = 0;
    var b = 0;
    var c = 0;
    var d = 0;

    for (var row = 0; row < WO.length; row ++) {
        var counter = row - 1;
        while (WO[row] == "") {
            WO[row] = WO[counter];
            counter--;
        }
    }

    for (var col = 0; col < Info[0].length; col++) {
        for (var row = 0; row < Info.length; row++) {
            if (Info[row][col] == Search[col]) {
                if (col == 0) {
                    FinalArray1[a] = WO[row];
                    a++;
                }
                else if (col == 1) {
                    FinalArray2[b] = WO[row];
                    b++;
                }
                else if (col == 2) {
                    FinalArray3[c] = WO[row];
                    c++;
                }
            }
        }
    }

    for (var i = 0; i < FinalArray1.length; i++) {
        for (var j = 0; j < FinalArray2.length; j++) {
            for (var k = 0; k < FinalArray3.length; k++) {
                if (FinalArray3[k] == FinalArray2[j] && FinalArray2[j] == FinalArray1[i]) {
                    LastArray[d] = FinalArray1[i];
                    d++;
                }
            }
        }
    }
    return LastArray;
}

如果您按注釋中的指示在電子表格中調用函數( =sortingtest(sheet1!A1:C12,sheet3!D1:E12,sheet2!F1:G4) ),則無需調用任何SpreadsheetApp獲取數組的函數: pWOpInfopSearch將已經是二維數組。

引用Google自定義函數文章

如果您以對單元格范圍的引用作為參數來調用函數(like =DOUBLE(A1:B10)) ,則參數將是單元格值的二維數組。 例如,在下面的屏幕快照中,Apps Script將=DOUBLE(A1:B2)中的參數解釋為double([[1,3],[2,4]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM