Проверка диапазона на наличие пробелов перед копированием
Эта функция проверяет массив значений на наличие пробелов.Если пробелы обнаружены, это предупреждает пользователя, идентифицирует пустые ячейки и завершает функцию.В противном случае он выполняет передачу и очищает некоторые диапазоны.
function Moverows5() {
var ss=SpreadsheetApp.getActive();
var sourceSheet=ss.getSheetByName("Sheet1");
var targetSheet=ss.getSheetByName("Sheet2");
var sourceRange=sourceSheet.getRange("B8:T43");
var values=sourceRange.getValues();
var range0=sourceSheet.getRange("C8:K43");
var range1=sourceSheet.getRange("Q8:T43");
var range2=sourceSheet.getRange("P2");
var range3=sourceSheet.getRange("R2");
var firstFreeRow=targetSheet.getLastRow() + 1;
var noBlanks=true;
var bA=[];
var ro=sourceRange.getRow();
var co=sourceRange.getColumn();
for(var ri=0;ri<values.length;ri++) {
for(var ci=0;ci<values[ri].length;ci++) {
if(!values[ri][ci]) {
noBlanks=false;
bA.push(sourceSheet.getRange(ri+ro,ci+co).getA1Notation());
}
}
}
if(noBlanks) {
targetSheet.getRange(firstFreeRow,1,values.length,values[0].length).setValues(values);
range0.clearContent();
range1.clearContent();
range2.clearContent();
range3.clearContent();
//createPdf()//function gets started
}else{
SpreadsheetApp.getUi().alert('Sorry there are blanks in the following cells: ' + bA.join(', '));
return;
}
}
Если вы хотите, вы можете использовать эту функцию для создания тестовых данных перед тестированием в ценной электронной таблице.
function createTestData() {
var m=1;//0 for random column positions >0 for fixed position
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
sh.clearContents();
var cols=30;//number of columns
var rows=50;//number of rows
var hpref='hdr';
var hA=[];
var hdrA=[];
var cA=[];
for(var i=0;i<cols;i++) {hA.push(i+1);};
for(var i=0;i<cols;i++) {
if(m==0) {
var index=Math.floor(Math.random() * hA.length);
}else{
var index=i;
}
var hnum=hA[index];
hdrA.push(hpref + hnum);
cA.push(hnum);
if(m==0) {
hA.splice(index,1);
}
}
sh.getRange(1,1,1,hdrA.length).setValues([hdrA]);
var rg=sh.getRange(2,1,rows,cols);
var vA=rg.getValues();
for(var i=0;i<rows;i++) {
for(var j=0;j<cols;j++) {
vA[i][j]=Number(i+1) + ',' + cA[j];
}
}
rg.setValues(vA);
sh.getRange("B8:T43").setBackground('#ff00ff');
}