こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Google Scriptの別シートの参照

現在、アクティブなスプレッドシートと同じシート名で、
別のスプレッドシートの同じシート名を
参照したいのですが、
getRangeで、リファレンスエラーになります。

var mySS = SpreadsheetApp.getActiveSpreadsheet();
mySS.getSheets()[j].activate();

var ss_copyFr = SpreadsheetApp.openById(GetID);
var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet();

var sheet_copyFr = ss_copyFr.getSheetByName(name);
var sheet_copyTo = ss_copyTo.getSheetByName(name);

var d = sheet_copyFr.getRange('A1').getValues();
             ~~~~~~~~~~~~~~~~~~~~~~~~~~
何か、
よい解決策は、ありますでしょうか?

よろしくお願いします。

投稿日時 - 2014-08-03 18:13:39

QNo.8703094

すぐに回答ほしいです

質問者が選んだベストアンサー

>どの様な、スクリプトを記述すれば、
>実現するでしょうか?

質問文にあったスクリプトと基本的には大差ないと思いますよ。

var ss_copyFr = SpreadsheetApp.openById( コピー元のID );
var ss_copyTo = SpreadsheetApp.openById( コピー先のID );

var sheet_copyFr = ss_copyFr.getSheetByName( シート名 );
var sheet_copyTo = ss_copyTo.getSheetByName( シート名 );

var d = sheet_copyFr.getRange( 範囲指定 ).getValues();
sheet_copyTo.getRange( 範囲指定 ).setValues(d);

こんな感じでできるはずです。

投稿日時 - 2014-08-04 08:41:42

ANo.2

このQ&Aは役に立ちましたか?

9人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

スクリプトをコピペして(IDなどは書き直し)実行しましたが、問題なく動いています。sheet_copyFr.getRange('A1').getValues();もsheet_copyTo.getRange('A1').getValues();も正常に取得できています。

スクリプト自体には問題ないようですので、他に原因があるのかもしれません。例えば、getSheetByNameで指定している変数nameの値が正しくないなどでSheetが正しく取得できてない、などはないでしょうか。

投稿日時 - 2014-08-03 22:02:08

補足

1.タイムカードというスプレッドシートに社員の出社日、出勤時間、退勤時間があります。

2.勤怠管理シートで、社員名簿というシートがあります。

3.社員名簿にある、名前をタイムカードから、
  引っ張り、勤務表にコピーしたいのですが、
  
どの様な、スクリプトを記述すれば、
実現するでしょうか?

投稿日時 - 2014-08-04 05:52:20

あなたにオススメの質問