我最近开始研究GAS。 我用低号写了自动编号脚本。 有电子表格有一些数据,我想一次把A列包括批次ID号。
function autoID() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastrow = sheet.getLastRow();
for(i=1; i<= lastrow-1; i++)
{
var num = sheet.getRange(i,1);
num.setValue(i);
}
Browser.msgBox("This is end!");
}
这在没有好的例子中,需要花费太多时间。
我想我应该使用Array().. 可能是↓这是提示..
https://developers.google.com/apps-script/best_practices
但是这个最佳实践不起作用,我试过了......
function autoID() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastrow = sheet.getLastRow();
var num = new Array();
idrange = sheet.getRamge("A2:A"+(lastrow-1));
idrange = idrange.getValues();
for(i=1; i<= lastrow-1; i++)
{
var num = sheet.getRange(i,1);
num[(i)]=i;
}
Browser.messageBox(num[1]); // this is 1;
idrange.setValues(num); // this is error
}
如何更改类型?
请帮帮我..
我认为这一定很容易。
答案 0 :(得分:0)
不确定我到底知道你想要做什么但是这里是如何工作而没有代码错误:
function autoID() {
var sheet = SpreadsheetApp.getActiveSheet();
var lastrow = sheet.getLastRow();
var num = new Array();
var idrange = sheet.getRange("A2:A"+(lastrow));
var idrangeVal = idrange.getValues()
for(var i in idrangeVal){
num.push([i]);
}
idrange.setValues(num);
}
这是(我希望)做你期望的版本......
function autoID() {
var sheet = SpreadsheetApp.getActiveSheet();
var valuesInrangeA = sheet.getRange('A2:A').getValues();
var maxA = 0
for(var n=0 ;n<valuesInrangeA.length ; n++){
if(valuesInrangeA[n][0]!=''){maxA=n+2};
};
var num = new Array();
for(var i=1 ; i<maxA ; i++){
num.push([i]);
}
sheet.getRange("B2:B"+maxA).setValues(num);
}