![](/img/trans.png)
[英]Google Apps Script Copying a column in one sheet, transposing it, then pasting to another
[英]Data copying with Google Apps Script
我正在尝试使用Google Apps脚本编写一个脚本,该脚本从一个工作表中获取单元格信息并将其复制到另一工作表中,这既是为了获取某些要显示在第二个工作表上的列,又是基于某个单元格内部值的条件柱。 这是我到目前为止的内容:
function onMyEdit() {
var myMaster = SpreadsheetApp.openById("xxxxx");
var masterSheet = myMaster.setActiveSheet(myMaster.getSheets()[0]);
var myNames = SpreadsheetApp.openById("xxxxx");
var namesSheet = myNames.setActiveSheet(myNames.getSheets()[0]);
var row1 = masterSheet.getRange(1, 1, masterSheet.getLastRow(), 1);
var rowV = row1.getValues();
var firstArray = masterSheet.getDataRange().getValues();
var dataList = [];
for (var i = 1; i < rowV.length; i++) {
dataList.push(firstArray[i][0]);
dataList.push(firstArray[i][1]);
dataList.push(firstArray[i][2]);
dataList.push(firstArray[i][3]);
}
for (var j = 0; j < rowV.length - 1; j++) {
namesSheet.getRange(2, j + 1, 1, 1).setValue(dataList[j]);
}
}
因此,到目前为止,它仅适用于从第二行开始的一行(以允许列标题)。 我想当我想基于单元格数据有条件地获取行时,我将为'for'循环中的条件使用'if'语句,但是我希望数据复制到两张纸中的下一个可用行。 我想我会使用诸如“ getLastRow + 1”之类的东西。 由于数据量及其用途,我需要此代码尽可能地高效。 我是编程新手,所以请详细解释,并再次感谢。
我不确定我是否确切了解您想做什么,但是-从我的理解-此代码段应该为您提供一种更好的入门方法...
(我添加了一些注释以在代码本身中进行解释)
function onMyEdit() {
var myMaster = SpreadsheetApp.openById("MasterSheet ID");
var masterSheet = myMaster.getSheets()[0]; // get 1rst sheet
var myNames = SpreadsheetApp.openById("NamesSheet ID");
var namesSheet = myNames.getSheets()[0]; // get 1rst sheet
var firstArray = masterSheet.getDataRange().getValues();
var dataList = [];
for ( r = 1; r < firstArray.length; r++) { // iterate the first col of masterSheet
if(firstArray[r][0]=='some condition'){ // if value in the first column == 'some condition get the second column cell in the new array (here you could change what you want to get)
dataList.push([firstArray[r][1]])
}
}
Logger.log(dataList)
if(dataList.length>0){
namesSheet.getRange(1,namesSheet.getLastColumn()+1,dataList.length,1).setValues(dataList);//copy data in a column after last col
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.