2016-12-19 5 views
0

私は絶対初心者であり、次の問題に直面しています。特定の条件が真である場合にシート間で値をコピーする

私は今、私は状況に応じて、「tab1の」から「TAB2」の範囲やセルから値をコピーしたい2枚とスプレッドシートを持っている、「TAB1」と「TAB2」

A9

私は次のスクリプトを試しましたが、A9の条件が満たされていなくても値をコピーし続けます。

私はここで間違っていますか?

function copyIf() { 
    source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("tab1"); 
    var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("tab2"); 

    var condition   = source.getRange('A9').getValue(); 

  if (condition == "mon") { 
     source.getRange('A2').copyTo(destination.getRange('D11')); 
     source.getRange('A5').copyTo(destination.getRange('D5')); 
     } 
} 

こんにちはみんなは、クイックヘルプをありがとう、私は正確にされていないため申し訳ありません、私は新しい例のシートを作成し、それに応じて私を提供するコードを適応しています。基本的には正常に動作しますが、まだ小さな問題があります。

`関数copyIf(){

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var source = ss.getSheetByName("tab1"); 
var destination = ss.getSheetByName("tab2"); 
var condition = source.getRange('A9').getValue(); 
if (condition == "mon") { 
source.getRange('B14').copyTo(destination.getRange('B5')); 
source.getRange('B15').copyTo(destination.getRange('C5')); 

} }

ソース範囲B14及びB15はE14から合計を合計する数式を含む:F14、E15:F15

目標は条件が満たされている限り(Tab1、A9 = mon)、B14とB15の値を2番目のシート(tab2、B5、C5)にコピーします。そうでなければ何も変更しないでください。

これは、ターゲット(TAB2、B5及びC5)を除いて正常に動作しているが

私はそれだけで小さな問題であると確信していますが、

ハイアーをそれを把握することができませんでしたが、式ではなく値を反映しますテストシートへのリンク:すべての

https://docs.google.com/spreadsheets/d/12X4CPa6qbb2nRPqPthI0F0_fszaga4jTIQ6ouUjZ6Yk/edit?usp=sharing

答えて

1

まず、私はあなたがこの質問にGoogleのアプリ-scriptタグを追加するべきだと思います。

コードをコピーし、説明したようにシートを設定し、ソース変数宣言にvarを追加して、意図した通りに機能しました。 「きれい」のコードは次のとおりです。

function copyIf() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var source = ss.getSheetByName("tab1"); 
    var destination = ss.getSheetByName("tab2"); 
    var condition = source.getRange('A9').getValue(); 
    if (condition == "mon") { 
    source.getRange('A2').copyTo(destination.getRange('D11')); 
    source.getRange('A5').copyTo(destination.getRange('D5')); 
    } 
} 

は私も1(正確にここで重要な良い習慣ではない)で、あなたのAPI呼び出しを減らすためにssと呼ばれる新しい変数を作りました。

これで問題が解決しない場合は、元の投稿を編集して詳細情報を追加し、おそらくダミーのスプレッドシートへのリンクを付けてください。

これはコメントだけではありますが、評判は50未満です。

+0

私も試してみましたが、それは私のために働いていました。 –

+0

回答OPの質問の提案された編集に応じて編集されました。 – Paul

関連する問題