Google apps script 将单元格范围复制到其他电子表格中的特定区域
我正在尝试将一系列数据复制到另一个电子表格中的新范围。我能够从引用模板中读取所需的行数和列数,但我无法将数据复制到新范围,它只是复制空白Google apps script 将单元格范围复制到其他电子表格中的特定区域,google-apps-script,Google Apps Script,我正在尝试将一系列数据复制到另一个电子表格中的新范围。我能够从引用模板中读取所需的行数和列数,但我无法将数据复制到新范围,它只是复制空白 function getTemplateName(){ //Retrieves the template file and opens it to retrieve templates var getTemplateFile = DriveApp.getFilesByName('Evaluation Templates') while (getTe
function getTemplateName(){
//Retrieves the template file and opens it to retrieve templates
var getTemplateFile = DriveApp.getFilesByName('Evaluation Templates')
while (getTemplateFile.hasNext())
var openTemplates = getTemplateFile.next()
var templateId = openTemplates.getId()
var openSpreadsheet = SpreadsheetApp.openById(templateId)
var listTemplates = openSpreadsheet.getSheets().valueOf()
//pushes all sheets from evaluation templates to a new array to be referenced by the menu
var templateArray = new Array()
var templateNames = openSpreadsheet.getSheets();
for (var i=0 ; i < templateNames.length ; i++) templateArray.push( [ templateNames[i].getName() ] )
//Retrieves the template sheet tab by the name selected in the menu
var getTemplateSheet = openSpreadsheet.getSheetByName('Shoulder')
var getObjectiveData = getTemplateSheet.getDataRange().getValues()
Logger.log(getObjectiveData)
//Counts the rows in the template sheet
var countRows = getTemplateSheet.getMaxRows()
var countColumns = getTemplateSheet.getMaxColumns()
Logger.log(countRows)
Logger.log(countColumns)
//Gets row number of 'Objective'
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Evaluation')
var objectiveLine = sheet.getDataRange().getValues()
for (var i = 0; i < objectiveLine.length; i++){
if (objectiveLine[i][0] == 'Objective'){
//inserts the number of rows
sheet.insertRowsAfter(i+1, countRows)
//copies template data to new active row
var newdata = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i, 1, countRows,
countColumns).setValues(getObjectiveData)
函数getTemplateName(){
//检索模板文件并将其打开以检索模板
var getTemplateFile=DriveApp.getFilesByName('评估模板')
while(getTemplateFile.hasNext())
var openTemplates=getTemplateFile.next()
var templateId=openTemplates.getId()
var openSpreadsheet=SpreadsheetApp.openById(templateId)
var listTemplates=openSpreadsheet.getSheets().valueOf()
//将评估模板中的所有图纸推送到菜单要引用的新数组中
var templateArray=新数组()
var templateNames=openSpreadsheet.getSheets();
对于(var i=0;i- 您的范围
可能大于1个单元格大,但是使用(i,1,countRows,countColumns)
您只能将值范围setValue()
的第一个值分配给此范围的每个单元格getObjectiveData
- 如果
的第一个值为空,则指定一个空数据范围getObjectiveData
要将二维值范围指定给二维范围,需要使用该方法,而不是
getValue()
很抱歉,这是一个输入错误。我确实尝试过。setvalues和单元格保持为空。在这种情况下,请提供一份电子表格副本,以了解问题的来源-在没有看到数据的情况下很难进行故障排除。我通过获取数据范围的A1表示法,然后使用A1表示法的getRange,使代码正常工作。