みなさんこんにちは!Google App Script。 Range1がRange2と交差するかどうか確認してください
GoogleシートスクリプトでVBAのintersect
と似た機能をご希望です。これを行うにはいい方法がありますか?この関数は返す必要があります。
RangeIntersect(R1, R2) = true
R1はR2
とは共通のセルを持っていない場合はR1がR2、
RangeIntersect(R1, R2) = false
と共通の細胞を持っている場合は、事前にありがとうございます。 スピードテスト
は、私は、関数ができるだけ速くとしてを仕事をしたいです。これは、onEdit
のループ内で使用されるためです。このスクリプトで、テスト提供機能のような場合:
function speedtest() {
var sheet;
sheet = SpreadsheetApp.getActiveSheet();
var rr1 = ['A1:C16', 'B2:B88', 'D1:D8', 'E1:E17', 'A18:B51', 'A13:A14', 'A17:C17'];
var r1, r2;
r1 = sheet.getRange(rr1[0]);
var rr2 = [];
// define some ranges
for (var x = 0; x < 30; x++) {
for (var i = 0; i < rr1.length; i++) {
r2 = sheet.getRange(rr1[i]);
rr2.push(r2);
}
}
var C;
var start, end, time;
// timer start
for (var t = 0; t < 10; t++) {
start = new Date().getTime();
for (var f = 0; f < rr2.length; f++) {
C = RangeIntersect(r1, rr2[f]);
}
end = new Date().getTime();
time = end - start;
Logger.log('Execution time = ' + time);
}
}
https://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-eachの重複を-other –