代码错误以#DIV/0的形式弹出单元格!代码遍历所有单元格之后 [英] Code Error Pop Up inside cell as #DIV/0! after code runs through all cells
本文介绍了代码错误以#DIV/0的形式弹出单元格!代码遍历所有单元格之后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在研究宏脚本,其中在工作表中也使用了财务公式
当第1行中的值不同时,我可以接收结果值,但是当第1列中有转置值时,我会收到错误消息.
请参见下面的代码,并随附两个屏幕截图
Please see the code below and attached two screenshots also
function MyFunction(){
var sd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SD');
var cr = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('CORRELATION');
var lr = cr.getLastRow();//find last row
var lc = cr.getLastColumn();//find last column
var data = cr.getRange(1, 1, lr, lc).getValues();
var data1 = sd.getRange(1, 1, 999,9999).getValues();
var c = 2
for ( var i = 1; i <= lc - 1; i++ ){
var r = 2
for ( var j = 1; j <= lr - 1; j++ ){
//Logger.log(data[0][i] + " - " +data[j][0])
sd.getRange("B1").setValue(data[0][i])
sd.getRange("S1").setValue(data[j][0])
cr.getRange(r, c).setValue(sd.getRange("H8").getValue())//error comes here
r = r + 1
}
c = c+ 1
}
SpreadsheetApp.getActiveSpreadsheet().toast('Task Completed!', 'Status');
}
推荐答案
我猜想是您在工作表限制之外增加了列或行.从以下代码开始,然后重写您的函数:
I'm guessing that you incrementing your column or row outside of the limits of your sheet. Start with the following code and rewrite your function:
function MyFunction(){
var ss=SpreadsheetApp.getActive();
var sd=ss.getSheetByName('SD');
var cr=ss.getSheetByName('CORRELATION');
var data=cr.getRange(1, 1, cr.getLastRow(), cr.getLastColumn()).getValues();
var data1=sd.getRange(1, 1, sd.getLastRow(),sd.getLastColumn()).getValues();
for(var i=0;i<data.length;i++) {
for(var j=0;j<data[i].length;j++) {
}
}
}
这篇关于代码错误以#DIV/0的形式弹出单元格!代码遍历所有单元格之后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文