我从Cooper那里获得了脚本的帮助,但是我需要进行一些修改,如果该行中的单元格为空,则该脚本基本上会通过自定义对话框移动。 我想完成的是仅检查一行中的特定单元格。 例如第1和4行是必填项,第2和3行不是必填项。 这是到目前为止我得到的代码。
function Moverows57654() {
var ss=SpreadsheetApp.getActive();
var sourceSheet=ss.getSheetByName("sheet1");
var targetSheet=ss.getSheetByName("sheet2");
var sourceRange=sourceSheet.getRange("A2:T2");
var values=sourceRange.getValues();
var range0=sourceSheet.getRange("A2:B2");
var range1=sourceSheet.getRange("D2:E2");
var firstFreeRow=goToFirstRowAfterLastRowWithData(targetSheet, "A:AD");
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); targetSheet.getRange(firstFreeRow, 1, values.length, values[0].length)
.setValues(values);
range0.clearContent();
range1.clearContent();
//createPdf()//function gets started
}else{
SpreadsheetApp.getUi().alert('Sorry there are blanks in the following cells: ' + bA.join(', '));
return;
}
答案 0 :(得分:0)
尝试一下:
function Moverows57654() {
var ss=SpreadsheetApp.getActive();
var sourceSheet=ss.getSheetByName("sheet1");
var targetSheet=ss.getSheetByName("sheet2");
var sourceRange=sourceSheet.getRange("A2:T2");
var values=sourceRange.getValues();
var range0=sourceSheet.getRange("A2:B2");
var range1=sourceSheet.getRange("D2:E2");
//var firstFreeRow=targetSheet.getLastRow() + 1;
var firstFreeRow=goToFirstRowAfterLastRowWithData(targetSheet, "A:AD");
var noBlanks=true;
var bA=[];
var skA=[1,2];//column -1
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] && skA.indexOf(ci)==-1) {
noBlanks=false;
bA.push(sourceSheet.getRange(ri+ro,ci+co).getA1Notation());
}
}
}
if(noBlanks) {
targetSheet.getRange(firstFreeRow,1,values.length,values[0].length)
.setValues(values); targetSheet.getRange(firstFreeRow, 1, values.length, values[0].length)
.setValues(values);
range0.clearContent();
range1.clearContent();
//createPdf()//function gets started
}else{
SpreadsheetApp.getUi().alert('Sorry there are blanks in the following cells: ' + bA.join(', '));
return;
}
}