0

今朝まで、次のコードは問題なく動作しました

function onOpen(e)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var sheet = ss.getActiveSheet();
  var range = sheet.getRange("B2:B100");
  var dv = range.getDataValidation();
  dv.requireValuesInList(["Shower","Shave","Shop"]);
  dv.setShowDropDown(true);
  range.setDataValidation(dv);    
} 

しかし、今晩、両方の関数でエラー メッセージが表示されます。

TypeError: Cannot find function requireValuesInList in object DataValidation.
TypeError: Cannot find function requireValuesInRange in object DataValidation.

何が起こったのですか?これらの機能は置き換えられていますか?

テストするために、新しい空のスプレッドシートを作成し、onOpen 関数に貼り付けて実行しようとしましたが、うまくいきません。

どんな洞察も大歓迎です。

4

2 に答える 2

1

Object.keys(dv) [DataValidation オブジェクトのすべてのメソッドのリスト] の戻り値を出力すると、次のようになります: isAllowInvalidData,setAllowInvalidData,getCriteriaValues,setHelpText,toString,setCriteria,getCriteria

DataValidation プロトタイプが完全に変更されたようで、変更に関する警告もドキュメントもありません。Google 独自のドキュメント ( http://developers.google.com/apps-script/reference/spreadsheet/data-validation ) は、現在廃止されている DataValidation プロトタイプを参照しています。

ナイスワングーグル!

Waqar、 getDataValidation() が文書化されていないと主張する方法がわかりません。getDataValidation() によって返される DataValidation オブジェクトは、上に投稿したリンクで十分に文書化されていました。

于 2013-04-25T21:11:18.250 に答える
0

range オブジェクトの getDataValidation() メソッドは文書化されていないため、実際に何が起こったのかはわかりません。ベスト プラクティスは、文書化されているメソッドとクラスのみを使用することです。

これは、Issue Tracker の同じリンクです。あなたはそれをチェックするかもしれません。

https://code.google.com/p/google-apps-script-issues/issues/detail?id=2356

于 2013-04-23T06:09:34.623 に答える