使用以下函数将我的日期输出转换为Unix时间戳,但是我收到以下错误:
范围的坐标或尺寸无效。 (第9行,文件" DateConversion")
代码:
function convertDates(){
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var values = rows.getValues();
for(n=0;n<values.length;++n){
var cell = values[n][0];
var cellNew = cell.replace("at ", " ");
//SpreadsheetApp.getUi().alert(cellNew);
SpreadsheetApp.getActiveSheet().getRange(Number(n), 0)
}
}
答案 0 :(得分:4)
您指定0列,将其更改为1或更多。另外,你想在循环中使用getRange完成什么?这主要是一个糟糕的决定,很少是必不可少的。
答案 1 :(得分:2)
我在传递0值作为GetRange中的列时遇到了这个问题。经过一些测试后,我确定传递给getRange的行和列值从1开始,而不是0。
这是我的测试代码:
var row = sheet.getDataRange().getLastRow();
Logger.log("Row: " + row);
var col = 0;
var range = sheet.getRange(row+1, col+1, 1, 1);
range.setValue(0);
before the code after the code
在日志中,记录了row的值:
[18-10-30 04:29:57:257 PDT] Row: 1
因此,在我的情况下,如果要访问A2处的单元格,则必须调用getRange(2,1,1,1);
答案 2 :(得分:0)
function convertDates() {
var s = SpreadsheetApp.getActiveSheet();
var startRow = 2; // row number where dates begin
var lastRow = s.getLastRow();
var datesR = s.getRange(startRow, 1, lastRow - startRow +1);
var dates = datesR.getValues();
for(n = 0; n < dates.length; n++ ) {
dates[n][0] = dates[n][0].toString().replace("at ", " ");
}
// replace dates with revised array
datesR.setValues(dates);
}