Google apps script 仅将非空单元格附加到另一个工作表google脚本
我只想复制C&E列中的非空单元格,并将它们全部追加到“更新”工作表的第1列。下面是我尝试复制非空单元格的内容,但它没有附加 这是供参考的Google apps script 仅将非空单元格附加到另一个工作表google脚本,google-apps-script,google-sheets,filtering,google-sheets-api,Google Apps Script,Google Sheets,Filtering,Google Sheets Api,我只想复制C&E列中的非空单元格,并将它们全部追加到“更新”工作表的第1列。下面是我尝试复制非空单元格的内容,但它没有附加 这是供参考的 function emaillFilter(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var ws = ss.getSheetByName("Email"); var updateSheet = ss.getSheetByName("Update"); var range = ws
function emaillFilter(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getSheetByName("Email");
var updateSheet = ss.getSheetByName("Update");
var range = ws.getRange(1,5,ws.getLastRow());
var emptycells = SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build();
var filter = range.getFilter() || range.createFilter();
filter.setColumnFilterCriteria(5, emptycells);
var data = ws.getRange(2,5,ws.getLastRow()).getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!ws.isRowHiddenByFilter(i+1)){
array.push(data[i]);
}
}
updateSheet.getRange(updateSheet.getLastRow()+1, 1, array.length).setValues(array);
}
函数emaillFilter(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var ws=ss.getSheetByName(“电子邮件”);
var updateSheet=ss.getSheetByName(“更新”);
var range=ws.getRange(1,5,ws.getLastRow());
var emptycells=SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build();
var filter=range.getFilter()| | range.createFilter();
filter.setColumnFilterCriteria(5个空细胞);
var data=ws.getRange(2,5,ws.getLastRow()).getValues();
var数组=[];
对于(变量i=0;i
输入表C&E列
所需输出-粘贴列C和附加E,在另一张表的列A中不带空格
这个怎么样:
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array=[];
data.forEach(function(r,i){
if(r[2] && r[4]) {
array.push(r);
}
});
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
好吧,根据你的评论,我想你想要这个:
所需输出-粘贴列C和附加E,在另一张表的列A中不带空格
但我必须承认,我看不到第二张图片中反映了这一点,所以我们可能需要另一次迭代
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array=[];
data.forEach(function(r,i){
//is columnC and columnE both truth
if(r[2] && r[4]) {
array.push([r[2] + ',' + r[4]]);
//is columnC truthy and columnE falsy
}else if(r[2] && !r[4]) {
array.push([r[2]]);
}
});
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
好吧,我想就是这样:
function emaillFilter(){
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName("Email");
const ush=ss.getSheetByName("Update");
const data=sh.getRange(2,1,sh.getLastRow(),5).getValues();
var array1=[];
var array2=[];
data.forEach(function(r,i){
if(r[2]) {
array1.push([r[2]]);
}
if(r[4]) {
array2.push([r[4]]);
}
});
var array=array1.concat(array2);
ush.getRange(ush.getLastRow()+1, 1, array.length,array[0].length).setValues(array);
}
谢谢你的图片。他们真的帮了大忙
请不要一次问几个问题。另外,请提供一个或一个工作表示例以及所需的结果。感谢Cooper,它的部分工作原理是不复制C列中的所有数据,而只获取E列中包含数据的行,我想复制C&E列中的所有非空行,并仅在更新表第一列中附加这两列。我已经添加了两个有关inputsheet和所需输出表的屏幕截图,希望有助于编辑图像,我想要的是将输入的C&E列粘贴到输出的A列中,而我看不到空单元格。他们必须在底部吗?