仅使用Google Apps脚本粘贴数据验证 [英] Paste data validation only using Google Apps Script
问题描述
这一个应该是一个容易的是或否。是否可以使用Google Apps脚本粘贴数据验证?
我想要做的是让代码复制数据验证将行数据验证粘贴到活动单元格的行中。
我试过copyTo:
function updateFormat(){
var rowNumber = SpreadsheetApp.getActiveSpreadsheet()。getActiveSelection()。getRow();
var rowAbove = rowNumber -1;
var targetRange = SpreadsheetApp.getActiveSpreadsheet()。getActiveSheet()。getRange(rowNumber,1,1,36);
var templateRange = SpreadsheetApp.getActiveSpreadsheet()。getActiveSheet()。getRange(rowAbove,1,1,36);
templateRange.copyTo(targetRange);
}
但显然 - 复制数据验证和上面这一行的内容,这不是目标。
有什么想法?
$
添加optArgument {formatOnly:true}工程(请参阅参考资料)。所以
templateRange.copyTo(targetRange);
变为
templateRange.copyTo(targetRange,{formatOnly:true});
我重构了您的代码并使用以下方法进行了测试:
function updateFormat(){
var sheet = SpreadsheetApp.getActiveSheet();
var rowNumber = sheet.getActiveSelection()。getRow();
var rowAbove = rowNumber -1;
var maxCols = sheet.getMaxColumns();
var rangeToCopy = sheet.getRange(rowAbove,1,1,maxCols);
rangeToCopy.copyTo(sheet.getRange(rowNumber,1,1,maxCols),{formatOnly:true});
}
This one should be an easy yes or no. Is it possible to paste data validation only with Google Apps Script?
What I want to do is have the code copy the data validation from the row above the active cell, then paste the data validation into the row of the active cell.
I tried copyTo:
function updateFormat() {
var rowNumber = SpreadsheetApp.getActiveSpreadsheet().getActiveSelection().getRow();
var rowAbove = rowNumber -1 ;
var targetRange = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(rowNumber, 1, 1, 36);
var templateRange = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(rowAbove, 1, 1, 36);
templateRange.copyTo(targetRange);
}
but--obviously--that copied the data validation and the contents of the row above, which is not the goal.
Any ideas?
Thanks in advance!
Adding the optArgument {formatOnly:true} works (See Ref). So
templateRange.copyTo(targetRange);
becomes
templateRange.copyTo(targetRange, {formatOnly:true});
I've refactored your code slightly and tested using:
function updateFormat() {
var sheet = SpreadsheetApp.getActiveSheet();
var rowNumber = sheet.getActiveSelection().getRow();
var rowAbove = rowNumber -1 ;
var maxCols = sheet.getMaxColumns();
var rangeToCopy = sheet.getRange(rowAbove, 1, 1, maxCols);
rangeToCopy.copyTo(sheet.getRange(rowNumber, 1, 1, maxCols), {formatOnly:true});
}
这篇关于仅使用Google Apps脚本粘贴数据验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!