Google脚本错误:参数必须是范围(第74行)

时间:2013-01-25 01:58:25

标签: google-apps-script

这是我的功能

 function Cool() {   var h = SpreadsheetApp.getActiveSpreadsheet();  
 var range = 0;   var count = 1;   var alph = ["A", "B", "C", "D", "E",
 "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
 "T"];   for (i = 0; i < 20; i+=0.5) {
     if (i == 19 && count != 5) {
       i == 0;
       count += 1;
     } else if (i == 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18) {
       range = h.getSheets()[0].getRange(alph[i] + count + ":" + alph[i] + count);
       SpreadsheetApp.setActiveRange(range);
       randomize();
     }   } }

上有错误
range = h.getSheets()[0].getRange(alph[i] + count + ":" + alph[i] + count);

1 个答案:

答案 0 :(得分:0)

你看过你正在使用的数据吗?

这是一个稍微修改过的脚本版本,带有一个记录器,可以查看发生的情况和下面的日志结果。我想你会理解为什么会收到错误消息。看来你的条件简化语法不能做你想要的,是吗?

btw这个脚本的最终目的是什么?你能解释一下这个想法吗?

如果你只想对i的整数值做一些事情,那么使用像if(i==parseInt(i))这样的东西会更容易......

function Cool() {   
  var h = SpreadsheetApp.getActiveSpreadsheet();  
  var range = 0;   var count = 1;   var alph = ["A", "B", "C", "D", "E",
 "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
 "T"];   for (i = 0; i < 20; i+=0.5) {
     if (i == 19 && count != 5) {
       i == 0;
       count += 1;
     } else if (i == 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18) {
//       range = h.getSheets()[0].getRange(alph[i] + count + ":" + alph[i] + count);
//       SpreadsheetApp.setActiveRange(range);
 Logger.log('i='+i+'  '+alph[i] + count + ":" + alph[i] + count);
 //      randomize();
     }  
     }
     }

登录结果:

i=0  A1:A1
i=0.5  undefined1:undefined1
i=1  B1:B1
i=1.5  undefined1:undefined1
i=2  C1:C1
i=2.5  undefined1:undefined1
i=3  D1:D1
i=3.5  undefined1:undefined1
i=4  E1:E1
i=4.5  undefined1:undefined1
i=5  F1:F1
i=5.5  undefined1:undefined1
i=6  G1:G1
i=6.5  undefined1:undefined1
i=7  H1:H1
i=7.5  undefined1:undefined1
i=8  I1:I1
i=8.5  undefined1:undefined1
i=9  J1:J1
i=9.5  undefined1:undefined1
i=10  K1:K1
i=10.5  undefined1:undefined1
i=11  L1:L1
i=11.5  undefined1:undefined1
i=12  M1:M1
i=12.5  undefined1:undefined1
i=13  N1:N1
i=13.5  undefined1:undefined1
i=14  O1:O1
i=14.5  undefined1:undefined1
i=15  P1:P1
i=15.5  undefined1:undefined1
i=16  Q1:Q1
i=16.5  undefined1:undefined1
i=17  R1:R1
i=17.5  undefined1:undefined1
i=18  S1:S1
i=18.5  undefined1:undefined1
i=19.5  undefined2:undefined2

编辑 天生好奇我确实尝试使用建议的IF语句编写代码,然后得到以下日志(更好;-)但是相当没用,一个简单的for循环以统一增量也会做同样的事情......

i=0  A1:A1
i=1  B1:B1
i=2  C1:C1
i=3  D1:D1
i=4  E1:E1
i=5  F1:F1
i=6  G1:G1
i=7  H1:H1
i=8  I1:I1
i=9  J1:J1
i=10  K1:K1
i=11  L1:L1
i=12  M1:M1
i=13  N1:N1
i=14  O1:O1
i=15  P1:P1
i=16  Q1:Q1
i=17  R1:R1
i=18  S1:S1

所以问题仍然存在:最终目标是什么?