2017-10-04 4 views
0

Googleの走行距離を追跡するGoogleフォームがあり、Yogi's IMPORTXML function hereを実行して計算されます。問題は...タイムアウトだ。たくさん。おそらく#N/Aが25%の時間を投げます。私はそれはまたに私のチャンスを改善するように思われる(最も簡単な解決策は、元の数式でセルに移動するだけであるので、それをコピーし、各フォームのエントリに適用するアドオン、と身を誤っセルに貼り付けcopyDownを使用します予測可能なエラーを修正するためのGoogleスプレッドシート

私はすでにこのシートのカスタムメニューを設定しており、エラーを修正するためのスクリプトも追加したいと考えています。私はどの方向から始めればいいのか分かりません(私はスクリプトに精通していません...もっと "インターネットから何かをコピーして、それを私のニーズに合わせてタイプする"タイプ)。究極の目標は、行3の特定の列を検索し、#N/Aを含むセルを特定し、それらをクリアし、R2Cからの数式をそれらに貼り付け、結果をロードさせ、値のみをコピー/貼り付けさせることです関数は再計算を続ける必要はありません。私は、私はむしろそれが無限ループを実行していないと思います...エラーが残っている場合、彼らは再びそれを行うことができます理解(私は時折だけでなくタイムトリガに貼り付けかもしれませんが)

ありがとう!

答えて

0

私はIMPORTXML関数の必要性を排除することでこれにアプローチします。

あなたは既にGoogle Appsスクリプトに書いている言及し、その次のステップは、IMPORTXML機能がやっているんスクリプトを実装することです - 2点間の距離を計算します。

を使用して、選択した機能を実行し、パラメータ(例:function runsWhenFormSubmits(event))を渡して、機能がフォーム提出objectにアクセスできるようにすることができます。

built-in Maps APIを使用します。あなたがリンクしたメールスレッドは、実際のdistance code alreadyがあります

function getDirections(start, finish) { 
    // Start & finish are viable text addresses 
    var df = Maps.newDirectionFinder(); 
    df.setOrigin(start).setDestination(finish); 
    return df.getDirections(); 
} 

オブジェクトレイアウトを要約するとhere (in JSON format).

を示している。

function runsWithForm(e) { 
    var origin = "123 Fake Street, Springfield, IL", 
     dest = "321 Real Street, Springfield, MO"; 
    // When called via the Script Editor, the event object is not present. 
    if(e) { 
    var formItems = e.response.getItemResponses(); 
    var startAddressIndex = 0; // If the starting address is the first answer. 
    var destinationAddressIndex = 1; // If the destination address is the 2nd answer. 
    // Assuming the response is a simple String (vs. String[], etc). 
    origin = formItems[startAddressIndex].getResponse(); 
    dest = formItems[destinationAddressIndex].getResponse(); 
    } 
    var directions = getDirections(origin, dest); 
    if(directions.routes.length == 0) 
    throw new Error("No routes found between '" + origin + "' and '" + dest + "'."); 

    // Add code to do stuff with the existing route. 
} 
+0

を、これは私の悩みを克服するための可能なオプションですが... IMPORTXML関数は実際にはこのシートの元のソリューションと同じように、スクリプトの代わりに使用されていました。それは* far *信頼性が低いので、私はIMPORTXMLオプションとそのはるかに高い信頼性を発見したときに私は興奮しました。いずれにせよ、Googleマップへの呼び出しは時々タイムアウトしているように見えますが、私はそれらをクリアするために(私とは対照的に)ユーザのために自動的に、または簡単に(1つのメニューオプション)を探しています!私は他の方法で進歩を遂げていますが、私の他の質問に対するあなたの返答の一部に感謝します。ありがとう! – Alex

関連する問題