2017-08-23 19 views
-1

特定のプロセスを実行するgoogle-appsにワークシート(「WS-1」)があります... 次に、別のワークシート「WS-2 Vlookupとimportrangeを介してその情報を読み取ります。この可能性は外部のシートgoogle-apps-scriptsで実行するスクリプトをトリガーする

私はWS-2からWS1(WS1で実行するように)でスクリプトをトリガしたいと思いますので、私はWS1を毎回開く必要はありません....

ですか? ありがとうございます!

PS:他のソリューションは、毎日自動的に実行するようにWS-1でスクリプトを作ることです。..

+0

あなたのタイトルは私にとって意味のあるものです。だから私は、あなたが何かをするためにスプレッドシート1をスプレッドシート2に誘発させたいと思うでしょう。したがって、スプレッドシート2のどのようなイベントが使用を考えていますか? – Cooper

+0

スクリプトが(ファイル中にスクリプトエディタにアクセスして作成された)ファイルにバインドされている場合、同じスクリプトをonEditトリガを介してそこから2番目のファイルとrunt ehコードにコピーできます。 urlとsheetでファイルを開くには、アクティブシートまたはファイルへの参照をすべて変更する必要があります。スクリプトをライブラリとして作成し、両方で使用することもできます。 –

+0

@クーパーありがとう!私はメニュー項目を追加することを考えていました: "スプレッドシート1のスクリプトをトリガーする" – FcoArturo

答えて

0

はいそれが可能だ...しかし、こと、私はここに最初から言ってみましょうさらに

を読みますスプレッドシートという用語を使用するときは、APIと同じ意味で使用しようとしています。だから私の語彙には、ワークシートのようなものはありません。シートを含むスプレッドシートがあります。

私は今朝、この問題について考えていました。私は2つのスプレッドシートをとり、いくつかの機能を書いて、異なるスプレッドシートでプロジェクトを交信したり、同じスプレッドシートでプロジェクトを交信したり、私が知る限り近くで得ることができるかどうかを確認しました。彼らは自律的な存在です。それらの外部で定義された関数は、その内部では未定義です。そして、スクリプトプロジェクトに含まれている関数を使用して操作を実行するために別のスプレッドをトリガーしたい場合、そのプロジェクトスクリプトのトリガーを設定する必要があります。

私はこの考え方を2つのスプレッドシートを使用してさらに進め、時間ベースのトリガーを使用してメッセージシートを読むように互いに通信するための簡単なプロトコルを作成しました。どちらも同様のメッセージシートを持っています。私は実際にセットアップ私は手動でreadMessages()関数を実行したが、効果は同じである時間ベースのトリガーをしませんでした

function readMessages() 
{ 
    var ss=SpreadsheetApp.openById(SS1ID); 
    var sh=ss.getSheetByName('Messages'); 
    var rg=sh.getDataRange(); 
    var vA=rg.getValues(); 
    var br='<br />'; 
    var s=''; 
    var hA=vA[0]; 
    for(var i=1;i<vA.length;i++) 
    { 
    var data=vA[i]; 
    if(data[data.length-1]=='sent') 
    { 
     switch(data[data.length-2]) 
     { 
     case 'Read Data': 
      data[data.length-1]='rcvd'; 
      readData() 
      break; 
     case 'No Action Required': 
      data[data.length-1]='rcvd'; 
      ackMessage(data); 
      break; 
     default: 
      data[data.length-1]='rcvd'; 
      sendMessage(['Unknown Message Type']); 
      break; 

     } 

    } 
    } 
    rg.setValues(vA); 
} 

:あなたは、以下の機能と同様に機能し、それらはreadMessagesを使って、いくつかの操作を実行するために取得することができます。あるスプレッドシートからコマンドを発行することで、他のスプレッドシートに目的のアクションを実行させることができます。遠隔シートをトリガーしてreadMessages()関数を実行するトリガ・ソースがあり、その間に既知のプロトコルに従う限り、私は心の中でこれらの警告、でそれがスプレッドシートのために可能であると考えるので、はい

enter image description here

enter image description here

これは、各スプレッドシート上のメッセージシートがどのように見えるかです別のリモートスプレッドシートに、readMessages関数を読み込むためにトリガーされているプロジェクトに既に含まれている特定の操作を実行させます。

読み取りアクションを開始するトリガーがないと、あるスプレッドシートは別のスプレッドシートからデータを読み取ることができますが、他のスクリプト内の関数へのアクセスはありません。

私が間違っているなら、誰かが私を訂正してくれることを願っています。これは今日私の研究に基づいて考えているものです。

関連する問題