我想在G列中这样做:如果单元格'G8'是空的,那么(= K8)例如。我的困难是使引用的同一行在K的空单元格在G。
谢谢你帮忙
我试着改编这个剧本,但我在某个时候得到了转变,我不知道为什么。
function updatewithformula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet 1');
var range = sheet.getDataRange()
var source = sheet.getRange('G1:G13').getDisplayValues()
var index = []
for (var i = 1; i<source.length; i++){
if (source[i][0] == ""){
index.push(i+1)
}
}
index.push(range.getLastRow()+1)
Logger.log(index)
for(var i = 0;i<index.length-1;i++){
var rangetomodify = sheet.getRange(index[i],7,1,1)
var l = index[i+1]-index[i]-1
rangetomodify.setFormulaR1C1("=R["+l+"]C[4]")
}
}
2条答案
按热度按时间dffbzjpn1#
作为另一种方法,下面的修改如何?
修改点:
I've tryed to adapt this script but I get a shift at some point and I don't know why.
,在你的脚本中,"=R[" + l + "]C[4]"
是和var l = index[i + 1] - index[i] - 1
一起使用的,这种情况下,l
不为0的时候,使用另外一行,我想这可能是你出现问题的原因,在你的脚本中,我认为不需要使用var l = index[i + 1] - index[i] - 1
,简单修改一下你的脚本,就变成了这样。getRange
和setFormulaR1C1
被循环使用,在这种情况下,处理成本变高。当您的脚本通过降低流程成本进行修改时,下面的修改如何?
修改的脚本:
参考文献:
nimxete22#
@Shironeki有更好的,容易和简短的方法来做,我已经在这里使用
offset
。下面是我的作品
希望这个有用。
参考-偏移