2016-09-23 12 views
1

Google Scriptの使用経験はほとんどありませんが、スプレッドシートの1つの列を検索し、 "Film Dub"という文字列のすべてのインスタンスを検索しようとしています1つのセルにつき1つだけです)。以下はTypeError:オブジェクトに含まれる関数が見つかりません

は私のコードです:

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")

を受信し続けるしかし、ヒット、World's Worst "はdata[i][2]の正しい内容であるため、スプレッドシートから正しい情報が得られます。私はGoogle Script Editorでデバッガを使用してsが文字列であることを確認しています(これはStack Overflowでの類似の質問に対する解決策の1つでした)が、私の問題は解決しませんでした。他に何が間違っているのでしょうか?

+1

'typeof s'は何を返しますか? – nikjohn

+1

'typeof s'は' string'を返します – bookworm144

答えて

-1

私がGoogle Appsスクリプトの専門家ではないが、私はそれはjavascriptのだ知っているので、以下のJSメソッドは使用しない理由:

if(s.indexOf('Film Dub') > -1) 
+0

私は、次のエラーを受け取ります: 'TypeError:プロパティ" 2 "を未定義から読み取ることができません。 (行5、ファイル "コード") ' – bookworm144

+0

投票を停止すると、彼の行動を説明する必要があります!!実際にsが文字列の場合、s.indexOf()が動作するはずです。他の何かのためにおそらくエラーが発生しています。あなたのコードで「行5」の行を共有することはできますか? –

2

をあなたがの存在を確認するために、文字列での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]++; 
    } 
    } 
} 
+0

これを行うと、次のエラーが表示されます: 'TypeError:未定義からプロパティ" 2 "を読み取ることができません。 (行5、ファイル "コード") ' – bookworm144

+0

私はアプリスクリプトのendsWithメソッドでこの問題に直面していましたが、驚くほど 'indexOf'メソッドも私の場合に機能します。 – sumit

1

さらに確認したら、シートがどのように形成されているかを再度確認してください。これは、あなたのコードを動作させるためにシートを形成する方法です。ここで

  [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"); 
} 
} 
} 

は結果である: enter image description here

は、この情報がお役に立てば幸い!

関連する問題