みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

Google スプレッドシートのフィルタについて

フィルタを使用し、非表示の状態にしたセルに対して[setValue(s)]を行いたいです。
しかし、日付を入力した場合、フィルタを解除すると入力ができていません。
setValue自体はログを見るとエラーは発生せず成功しています。

どうすればよろしいのでしょうか。

以下イメージです。
---------------------------------
スプレッドシート

A  B  C  D
No. ID
1  1
1  2
1  3
2  4
2  5
2  6
3  7
3  8
3  9
----------------------------------
No.が1を表示するようにフィルタをかける

A  B  C  D
No. ID
1  1
1  2
1  3
----------------------------------
実行するコード
IDが7の行のC列に日付、D列に[TEST]を入力

function myFunction() {
var sh = SpreadsheetApp.getActive().getSheetByName( sheetname );
var id = sh.getRange("B:B").getValues();
for(var i=0; i<id.length; i++){
if(id[i] == 7){
sh.getRange("C" + (i + 1)).setValue(new Date());
sh.getRange("D" + (i + 1)).setValue("TEST");
}
}
}
-----------------------------------
フィルタを解除

A  B  C  D
No. ID
1  1
1  2
1  3
2  4
2  5
2  6
3  7    TEST
3  8
3  9

投稿日時 - 2015-09-25 15:55:11

QNo.9053628

すぐに回答ほしいです

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

単純に、new DateでオブジェクトをsetValueしているからでは? 日時のテキストを生成してsetValueしたら表示されませんか。

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
sh.getRange("C" + (i + 1)).setValue(yyyy + '-' + mm + '-' + dd;);

投稿日時 - 2015-09-25 17:34:19

お礼

shylockさん

回答ありがとうございます。

確かに文字列に変換すると表示されました。
しかし、なぜ日付だと表示されないのでしょう…。

投稿日時 - 2015-09-25 18:22:35

ANo.1

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

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

回答(1)

あなたにオススメの質問