2016-08-09 7 views
1

私は相対的な初心者です。私はGoogleのスプレッドシートに長い経費のリストを持っており、シートを開く当月に基づいてこのリストの適切な場所にジャンプしたいと考えています。毎月200行ありますので、次のようにしてください:今日の日付に基づいて特定の場所にGoogleシートを開きます

= MONTH(TODAY())*200 

これはスクリプト内では機能しません。私はこの機能を実行するセルから引き抜こうとしましたが、それをどうやって行うのか分かりません。私は

var monthrow = 1800 

を定義した。しかし、今日の日付に基づいヶ月の残りのためにそれを行う方法ので、下記の例では、私は9月にジャンプすることができますか?ご協力ありがとうございました!

function onOpen() { 

    goToSheet2b() 
    } 

    function goToSheet2b() { 

    var monthrow = 1800 
    goToSheet("Expenses", monthrow, 2); 
    } 

    function goToSheet(sheetName, row, col) { 
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName); 
    SpreadsheetApp.setActiveSheet(sheet); 
    var range = sheet.getRange(row, col) 
    SpreadsheetApp.setActiveRange(range); 

答えて

0

私が正しくあなたを理解し、毎月が実際に1月から始まる200行を持っていないならば、以下はあなたのために働く必要がある場合。私もコードにコメントしました。ご質問がある場合はお知らせください。

function onOpen() { 
    var d = new Date(new Date().getTime()); 
    var month = d.getMonth(); //.getMonth() returns values form 0 (Jan) to 11 (Dec) 
    var monthrow = month*200 + 1; //we add the 1 because if it is Jan than 0*200 = 0 + 1 = 1 or row number 1 and for the rest it will be the start of that month 
    goToSheet("Expenses", monthrow, 2); 
} 
+0

var monthrow =(month + 1)* 200に変更する必要がありました。しかし、それ以外は動作します。ありがとうございました! –

+0

私は自分の携帯電話でシートを開くと動作しませんが!それはなぜでしょうか? –

+0

ちょっと微妙な調整でうまくいきました(1月1日は1号機が始まったと思います)。私はあなたの携帯電話でそれが動作しない理由はわかりません。おそらく、アプリがシートにアクセスする方法とは何か?私はアプリができることには限界があることを知っています。あなたの質問に答えられたならば、解決策として回答を受け入れることを検討してください。 – mongoose36

0

ありがとうございます!

操作の順序を調整する必要がありました。

function onOpen() { 

    goToSheet2b() 
    } 

    function goToSheet2b() { 

    var d = new Date(new Date().getTime()); 
    var month = d.getMonth(); //.getMonth() returns values form 0 (Jan) to 11 (Dec) 
    var monthrow = (month+1)*200;//we add the 1 because if it is Jan than 0*200 = 0 + 1 = 1 or row number 1 and for the rest it will be the start of that month 
    goToSheet("Expenses", monthrow, 2); 

    } 

    function goToSheet(sheetName, row, col) { 
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName); 
    SpreadsheetApp.setActiveSheet(sheet); 
    var range = sheet.getRange(row, col) 
    SpreadsheetApp.setActiveRange(range);} 
関連する問題