Googleスクリプトの使用経験はほとんどありませんが、それを使用してスプレッドシートの1つの列を検索し、「Film Dub」という文字列のすべてのインスタンスを見つけようとしました(セルごとに1つしか存在できないことを知っていました)。
以下は私のコードです:
_ function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 100; i++) {
var s = data[i][2].toString();
if (s.includes('Film Dub')) {
data[5][13]++;
}
}
}
_
ただし、エラーが発生し続ける
TypeError: Cannot find function includes in object Let's Make A Date, Film Dub, Three Headed Broadway Star, Film TV Theater Styles, Greatest Hits, World's Worst. (line 6, file "Code")
"Let's Make A Date、Film Dub、Three Headed Broadway Star、Film TV Theater Styles、Greatest Hits、World's Worst"は_data[i][2]
_の正しい内容なので、スプレッドシート。私はGoogle Script Editorのデバッガーを使用してs
が文字列であることを確認しました(これはStack Overflowでの同様の質問に対する解決策の1つでした)が、問題は解決しませんでした。他に何が悪いのでしょうか?
文字列でindexOfを使用して、テキストブロックの存在を確認する必要があります。
function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 100; i++) {
var s = data[i][2].toString();
if (s.indexOf('Film Dub') !== -1) {
data[5][13]++;
}
}
}
さらに確認したら、シートがどのように形成されているかを再確認してください。これは、コードを機能させるためにシートを作成した方法です。
[A] [B] [C]
[1]Let's Make A Date Film Dub Three Headed Broadway Star
[0] [1] [2]
これがあなたのコードです:
function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 10; i++) {
var s = data[i][2].toString();
//Logger.log(s);
if (s.indexOf("Film Dub")> -1) {
Logger.log("Horray");
}
}
}
お役に立てれば!
シートで最新バージョンのApps Scriptが実行されていることを確認してください。スクリプトエディターを開くと、上部に「このプロジェクトは、Chrome V8を搭載した新しいApps Scriptランタイムで実行されています。」という黄色の通知が表示されます。そうでない場合は、有効にするオプションです。includes関数はSheetsスクリプトの新機能です。使用するすべてのSheetに対して個別に有効にする必要があります。