0

私はこのフォーラムも Google スクリプトも初めてです。JavaScript やその他のプログラミング言語を実際に学んだことはありませんが、小さなビジネスのメイン プラットフォームとして Google アプリを選んだときから、無理やり使い始めました。

私の問題は、すべてのスプレッドシートで Google ImportRange 関数が 50 に制限されていることです。私は、すべての顧客が自分の個人データ、締め切りなどを含む独自のスプレッドシートを Google ドライブの自分のフォルダーに配置するモデルを作成しました。

「オーガナイザー」というスプレッドシートも作成しました。オーガナイザーには2つの機能があります-

1) autoCrat スクリプトを使用して自動通信を作成します。2) すべての顧客の締め切りを表示し、優先順位に従って並べ替えます。

したがって、すべての顧客スプレッドシートから「オーガナイザー」にデータを共有/インポート/コピーできる必要があります。50 以上の衣装スプレッドシートがあるため、ImportRange 関数をあきらめる必要がありました。代わりに、単純なスクリプトを使用してすべてのスプレッドシートからファイルを直接コピーしています。

function ImportDataRange() {

// rown number.1
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Databaze");
var range = sheet.getRange(2, 1)
var id = range.getValue()
var ssraw = SpreadsheetApp.openById(id);
var sheetraw = ssraw.getSheetByName("Raw");
var range = sheetraw.getRange("A2:AB2");
var data = range.getValues();

sheet.getRange("B2:AC2").setValues(data)

// row number.2
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Databaze");
var range = sheet.getRange(3, 1)
var id = range.getValue()
var ssraw = SpreadsheetApp.openById(id);
var sheetraw = ssraw.getSheetByName("Raw");
var range = sheetraw.getRange("A2:AB2");
var data = range.getValues();

sheet.getRange("B3:AC3").setValues(data)
}

このスクリプトは実際にはうまく機能しますが、問題は、この方法を使用して新しい貸衣装スプレッドシートを「オーガナイザー」に追加したい場合、新しい行ごとにコード全体の新しいコピーを手動で追加し、インポートされたデータの出力範囲を変更する必要があることです。 「オーガナイザー」内のソースファイル ID の場所。

新しい行/貸衣装データを簡単に/自動的に追加するのに役立つ何らかの回避策を知っている人はいますか?

ご協力ありがとうございました!

4

2 に答える 2

0

私は fooby のコードを取得し、長い試行錯誤の手順の後、私のために機能するコードを見つけました。

function ShowDataFromOtherSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Databaze");

var ids = sheet.getRange(2, 1, sheet.getLastRow() - 1).getValues();

for (var i = 0; i < ids.length; i++) {
var id = ids[i];

var ssraw = SpreadsheetApp.openById(id);
var sheetraw = ssraw.getSheetByName("Raw");
var range = sheetraw.getRange("A2:AB2");
var data = range.getValues();

sheet.getRange(i + 2, 2, 1, data[0].length).setValues(data)

    }
}

foob​​y さん、ありがとうございます。

于 2013-09-13T09:07:14.153 に答える