資料驗證規則的建構工具。
// Set the data validation for cell A1 to require a value from B1:B10. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); cell.setDataValidation(rule);
方法
內容詳盡的說明文件
build()
copy()
根據此規則的設定,建立資料驗證規則的建構工具。
// Change existing data validation rules that require a date in 2013 to require // a date in 2014. const oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; const newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); const rules = range.getDataValidations(); for (let i = 0; i < rules.length; i++) { for (let j = 0; j < rules[i].length; j++) { const rule = rules[i][j]; if (rule != null) { const criteria = rule.getCriteriaType(); const args = rule.getCriteriaValues(); if (criteria === SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN && args[0].getTime() === oldDates[0].getTime() && args[1].getTime() === oldDates[1].getTime()) { // Create a builder from the existing rule, then change the dates. rules[i][j] = rule.copy().withCriteria(criteria, newDates).build(); } } } } range.setDataValidations(rules);
回攻員
Data
:根據此規則的設定建立
get Allow Invalid()
如果規則在輸入資料驗證失敗時顯示警告,則會傳回 true
;如果完全拒絕輸入,則會傳回 false
。新資料驗證規則的預設值為 true
。
回攻員
Boolean
:如果規則允許輸入資料驗證失敗的輸入內容,則為 true
;如果不允許,則為 false
get Criteria Type()
取得 Data
列舉中定義的規則條件類型。如要取得條件參數,請使用 get
。如要使用這些值建立或修改資料驗證規則,請參閱 with
。
// Log information about the data validation rule for cell A1. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = cell.getDataValidation(); if (rule != null) { const criteria = rule.getCriteriaType(); const args = rule.getCriteriaValues(); Logger.log('The data validation rule is %s %s', criteria, args); } else { Logger.log('The cell does not have a data validation rule.'); }
回攻員
Data
:資料驗證條件類型
get Criteria Values()
取得規則條件的引數陣列。如要取得條件類型,請使用 get
。如要使用這些值建立或修改資料驗證規則,請參閱 with
。
// Log information about the data validation rule for cell A1. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = cell.getDataValidation(); if (rule != null) { const criteria = rule.getCriteriaType(); const args = rule.getCriteriaValues(); Logger.log('The data validation rule is %s %s', criteria, args); } else { Logger.log('The cell does not have a data validation rule.'); }
回攻員
Object[]
:與規則條件類型相符的引數陣列;引數數量和類型與 Data
類別的對應 require...()
方法相符
get Help Text()
取得規則的說明文字,如果未設定說明文字,則會傳回 null
。
回攻員
String
:規則的說明文字,如果未設定說明文字,則為 null
require Checkbox()
將資料驗證規則設為要求輸入值為布林值;這個值會以核取方塊呈現。
// Set the data validation for cell A1 to require a boolean value; the value is // rendered as a checkbox. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireCheckbox().build(); cell.setDataValidation(rule);
回攻員
Data
:這個建構工具,用於鏈結
require Checkbox(checkedValue)
將資料驗證規則設為要求輸入值為指定值或空白。如果輸入內容符合指定的值,系統就會將儲存格轉譯為已勾選的核取方塊。如果輸入內容為空白,儲存格會顯示為未勾選的核取方塊。
// Set the data validation for cell A1 to require a custom checked value that is // rendered as a checkbox. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED').build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
checked | Object | 指派給勾選方塊的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Checkbox(checkedValue, uncheckedValue)
設定資料驗證規則,要求輸入值為指定的值之一。如果輸入內容為 checked
,則儲存格會以勾選的核取方塊呈現。如果輸入內容為 unchecked
,則儲存格會顯示為未勾選的核取方塊。
// Set the data validation for cell A1 to require custom checked values that are // rendered as a checkbox. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireCheckbox('APPROVED', 'PENDING') .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
checked | Object | 指派給勾選方塊的值。 |
unchecked | Object | 指派給未勾選方塊的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date()
將資料驗證規則設為要求日期。
// Set the data validation for cell A1 to require a date. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireDate().build(); cell.setDataValidation(rule);
回攻員
Data
:這個建構工具,用於鏈結
require Date After(date)
將資料驗證規則設為要求日期必須晚於指定值。系統會忽略 Date
物件的時間欄位,只使用日、月和年欄位。
// Set the data validation for cell A1 to require a date after January 1, 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateAfter(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
date | Date | 最晚可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date Before(date)
將資料驗證規則設為要求日期必須早於指定值。系統會忽略 Date
物件的時間欄位,只使用日、月和年欄位。
// Set the data validation for cell A1 to require a date before January 1, 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateBefore(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
date | Date | 最早不可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date Between(start, end)
設定資料驗證規則,要求日期必須介於兩個指定日期之間,或為其中一個日期。系統會忽略 Date
物件的時間欄位,只使用 day、month 和 year 欄位。
// Set the data validation for cell A1 to require a date in 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateBetween(new Date('1/1/2013'), new Date('12/31/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
start | Date | 最早可接受的日期。 |
end | Date | 最晚可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date Equal To(date)
設定資料驗證規則,要求日期必須等於指定的值。系統會忽略 Date
物件的時間欄位,只使用日、月和年欄位。
// Set the data validation for cell A1 to require a date equal to January 1, // 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateEqualTo(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
date | Date | 唯一可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date Not Between(start, end)
設定資料驗證規則,要求日期不得介於兩個指定日期之間,也不能是這兩個日期。系統會忽略 Date
物件的時間欄位,只使用 day、month 和 year 欄位。
// Set the data validation for cell A1 to require a date not in 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateNotBetween(new Date('1/1/2013'), new Date('12/31/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
start | Date | 最早不可接受的日期。 |
end | Date | 最晚可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date On Or After(date)
設定資料驗證規則,要求日期必須在指定值的當天或之後。系統會忽略 Date
物件的時間欄位,只使用日、月和年欄位。
// Set the data validation for cell A1 to require a date on or after January 1, // 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateOnOrAfter(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
date | Date | 最早可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Date On Or Before(date)
設定資料驗證規則,要求日期必須在指定值之前或當天。系統會忽略 Date
物件的時間欄位,只使用日期、月份和年份欄位。
// Set the data validation for cell A1 to require a date on or before January 1, // 2013. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireDateOnOrBefore(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
date | Date | 最晚可接受的日期。 |
回攻員
Data
:這個建構工具,用於鏈結
require Formula Satisfied(formula)
將資料驗證規則設為要求指定公式的評估結果為 true
。
// Set the data validation for cell A1 to equal B1 with a custom formula. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireFormulaSatisfied('=EQ(A1,B1)') .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
formula | String | 如果輸入內容有效,這個自訂公式會評估為 true 。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Between(start, end)
將資料驗證規則設為要求數字介於兩個指定數字之間,或為其中一個數字。
// Set the data validation for cell A1 to require a number between 1 and 10. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberBetween(1, 10).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
start | Number | 可接受的最低值。 |
end | Number | 可接受的最高值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Equal To(number)
將資料驗證規則設為要求數字等於指定值。
// Set the data validation for cell A1 to require a number equal // to 3.1415926536. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberEqualTo(Math.PI).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 唯一可接受的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Greater Than(number)
將資料驗證規則設為要求數字大於指定值。
// Set the data validation for cell A1 to require a number greater than 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberGreaterThan(0).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 最高不接受值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Greater Than Or Equal To(number)
將資料驗證規則設為要求數字大於或等於指定值。
// Set the data validation for cell A1 to require a number greater than or equal // to 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireNumberGreaterThanOrEqualTo(0) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 可接受的最低值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Less Than(number)
將資料驗證規則設為要求數字小於指定值。
// Set the data validation for cell A1 to require a number less than 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberLessThan(0).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 可接受的最低值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Less Than Or Equal To(number)
將資料驗證規則設為要求數字小於或等於指定值。
// Set the data validation for cell A1 to require a number less than or equal to // 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireNumberLessThanOrEqualTo(0) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 可接受的最高值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Not Between(start, end)
設定資料驗證規則,要求輸入的數字不得介於兩個指定數字之間,也不能是這兩個數字。
// Set the data validation for cell A1 to require a number not between 1 and 10. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberNotBetween(1, 10).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
start | Number | 可接受的最低值。 |
end | Number | 最高不接受值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Number Not Equal To(number)
將資料驗證規則設為要求數字不等於指定值。
// Set the data validation for cell A1 to require a number not equal to 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberNotEqualTo(0).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Number | 唯一不接受的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Text Contains(text)
設定資料驗證規則,要求輸入內容包含指定的值。
// Set the data validation for cell A1 to require any value that includes // "Google". const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextContains('Google').build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
text | String | 輸入內容必須包含的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Text Does Not Contain(text)
設定資料驗證規則,要求輸入內容不得包含指定值。
// Set the data validation for cell A1 to require any value that does not // include "@". const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextDoesNotContain('@').build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
text | String | 輸入內容不得包含的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Text Equal To(text)
設定資料驗證規則,要求輸入值必須等於指定的值。
// Set the data validation for cell A1 to require "Yes". const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextEqualTo('Yes').build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
text | String | 唯一可接受的值。 |
回攻員
Data
:這個建構工具,用於鏈結
require Text Is Email()
設定資料驗證規則,要求輸入內容必須是電子郵件地址的格式。
// Set the data validation for cell A1 to require text in the form of an email // address. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextIsEmail().build(); cell.setDataValidation(rule);
回攻員
Data
:這個建構工具,用於鏈結
require Text Is Url()
設定資料驗證規則,要求輸入內容必須是網址的形式。
// Set the data validation for cell A1 to require text in the form of a URL. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextIsUrl().build(); cell.setDataValidation(rule);
回攻員
Data
:這個建構工具,用於鏈結
require Value In List(values)
設定資料驗證規則,要求輸入值必須等於指定值之一。
// Set the data validation for cell A1 to require "Yes" or "No", with a dropdown // menu. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireValueInList(['Yes', 'No']) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
values | String[] | 可接受值的陣列。 |
回攻員
Data
:這個建構工具,用於鏈結
require Value In List(values, showDropdown)
設定資料驗證規則,要求輸入值必須等於指定的其中一個值,並提供隱藏下拉式選單的選項。
// Set the data validation for cell A1 to require "Yes" or "No", with no // dropdown menu. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireValueInList(['Yes', 'No'], false) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
values | String[] | 可接受值的陣列。 |
show | Boolean | true :如果試算表應顯示值的下拉式選單;false :如果不顯示。 |
回攻員
Data
:這個建構工具,用於鏈結
require Value In Range(range)
設定資料驗證規則,要求輸入值必須等於指定範圍內的值。
// Set the data validation for cell A1 to require a value from B1:B10, with a // dropdown menu. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
range | Range | 包含可接受值的範圍。 |
回攻員
Data
:這個建構工具,用於鏈結
require Value In Range(range, showDropdown)
設定資料驗證規則,要求輸入值必須等於指定範圍內的值,並提供隱藏下拉式選單的選項。
// Set the data validation for cell A1 to require value from B1:B10, with no // dropdown menu. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const rule = SpreadsheetApp.newDataValidation() .requireValueInRange(range, false) .build(); cell.setDataValidation(rule);
參數
名稱 | 類型 | 說明 |
---|---|---|
range | Range | 包含可接受值的範圍。 |
show | Boolean | true :如果試算表應顯示值的下拉式選單;false :如果不顯示。 |
回攻員
Data
:這個建構工具,用於鏈結
set Allow Invalid(allowInvalidData)
設定在輸入資料驗證失敗時,是否要顯示警告,或是否要完全拒絕輸入內容。新資料驗證規則的預設值為 true
。
參數
名稱 | 類型 | 說明 |
---|---|---|
allow | Boolean | 如果規則應允許輸入資料驗證失敗的輸入內容,請設為 true ;如果不允許,請設為 false 。 |
回攻員
Data
:這個建構工具,用於鏈結
set Help Text(helpText)
設定使用者將滑鼠游標懸停在已設定資料驗證的儲存格上時,所顯示的說明文字。
參數
名稱 | 類型 | 說明 |
---|---|---|
help | String | 要設定的說明文字。 |
回攻員
Data
:這個建構工具,用於鏈結
with Criteria(criteria, args)
將資料驗證規則設為由 Data
值定義的條件,通常是從現有規則的 criteria
和 arguments
取得。
// Change existing data validation rules that require a date in 2013 to require // a date in 2014. const oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; const newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); const rules = range.getDataValidations(); for (let i = 0; i < rules.length; i++) { for (let j = 0; j < rules[i].length; j++) { const rule = rules[i][j]; if (rule != null) { const criteria = rule.getCriteriaType(); const args = rule.getCriteriaValues(); if (criteria === SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN && args[0].getTime() === oldDates[0].getTime() && args[1].getTime() === oldDates[1].getTime()) { // Create a builder from the existing rule, then change the dates. rules[i][j] = rule.copy().withCriteria(criteria, newDates).build(); } } } } range.setDataValidations(rules);
參數
名稱 | 類型 | 說明 |
---|---|---|
criteria | Data | 資料驗證條件的類型。 |
args | Object[] | 適合條件類型的引數陣列;引數數量和類型與上述對應的 require...() 方法相符。 |
回攻員
Data
:這個建構工具,用於鏈結