在下面的代码中,我试图读取2d数组(157行,2列),这些都是公式。然后我需要从每个单元格中删除公式的一部分,然后将其写回到相同范围内的工作表(在此步骤之前,我将删除公式的这部分引用的工作表)。当我运行调试器时,一切运行正常,但我的值不会被替换。有什么想法吗?
ss.setActiveSheet(ss.getSheetByName('Employee List'));
var as = SpreadsheetApp.getActiveSheet();
var empid = as.getLastRow();
var hrsRange = as.getRange(1, 3, empid, 2).getFormulas();
var i = 1;
while(i < empid)
{
var emp = as.getRange(i, 2).getA1Notation();
if (cpr == 20)
{
while(i < hrsRange.length)
{
var regHrs = "+sumif('" + array[x] + "'!O:O,$" + emp + ",'" + array[x] + "'!P:P)";
var otHrs = "+sumif('" + array[x] + "'!O:O,$" + emp + ",'" + array[x] + "'!Q:Q)";
hrsRange[i-1][0].toString().replace(regHrs,"");
hrsRange[i-1][1].toString().replace(otHrs,"");
i++;
}
} else {
while(i < hrsRange.length)
{
var regHrs = "+sumif('" + array[x] + "'!O:O,$" + emp + ",'" + array[x] + "'!Q:Q)";
var otHrs = "+sumif('" + array[x] + "'!O:O,$" + emp + ",'" + array[x] + "'!R:R)";
hrsRange[i-1][0].toString().replace(regHrs,"");
hrsRange[i-1][1].toString().replace(otHrs,"");
i++;
}
}
i++;
}
as.getRange(1, 3, empid, 2).setFormulas(hrsRange);
答案 0 :(得分:0)
这一行:
hrsRange[i-1][0].toString().replace(regHrs,"");
将返回一个字符串,而不是实际修改hrsRange[i-1][0]
。
您需要将结果字符串分配给hrsRange[i-1][0]
:
hrsRange[i-1][0]=hrsRange[i-1][0].toString().replace(regHrs,"");