Попробуйте что-то вроде этого:
// EmployeeID, E-mail, Дата, Имя сотрудника, Телефон
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getDataRange().getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
Попробуйте, если вы используете формулу массива:
function toFilter() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName("Worksheet");
var sheet2 = spreadsheet.getSheetByName("Update");
var hA=sheet1.getRange(1,1,1,sh.getLastColumn()).getValues()[0];
var hObj={};
var col='enter column number here'
hA.forEach(function(e,i){hObj[e]=i;});
var data = sheet1.getRange(1,1,getColumnHeight(col,sheet1,spreadsheet),sheet1.getLastRow()).getValues();
var array = [];
for (var i = 0; i < data.length; i++){
if(!sheet1.isRowHiddenByFilter(i+1)){
array.push([data[i][hObj['EmployeeID']],data[i][hObj['Email']],data[i][hObj['Date']]...]);
}
}
sheet2.getRange(sheet2.getLastRow()+1, 1, array.length, array[0].length).setValues(array);
}
function getColumnHeight(col,sh,ss){
var ss=ss||SpreadsheetApp.getActive();
var sh=sh||ss.getActiveSheet();
var col=col||sh.getActiveCell().getColumn();
var v=sh.getRange(1,col,sh.getLastRow(),1).getValues().map(function(r){return r[0];});
var s=0;
var h=0;
v.forEach(function(e,i){if(e==''){s++;}else{s=0;}h++;});
return (h-s);
}