如何使用谷歌应用脚本找到最后一列?
Posted
技术标签:
【中文标题】如何使用谷歌应用脚本找到最后一列?【英文标题】:How to find the last column using google apps script? 【发布时间】:2021-08-07 15:58:40 【问题描述】:我想使用onEdit
函数将数据从G11:G22
复制到工作表的最后一列,从第11 行开始。因此,一旦我在单元格F7
中选择Transfer
,就会触发脚本。运行脚本后,数据应出现在H11:H22
范围内,因为 H 列是工作表中的最后一列。我应该如何做到这一点?这是我尝试过的:
function onEdit(e)
var ss = SpreadsheetApp.getActiveSheet();
var lastrow = ss.getLastRow()
for( var k = 2; k <= lastrow ; k++)
var m = 1;
while( sheet.getRange(k,m).isBlank() == false)
m = m +1;
var lastcolumn = m
var destRange = ss.getRange(11,lastcolumn+1)
if (e.range.columnStart == 6 && e.range.rowStart == 7)
if (e.value == 'Transfer')
var source = ss.getRange("G11:G22")
source.copyTo (destRange, contentsOnly: true)
e.range.clearContent()
我认为问题来自For loop
,但我不知道出了什么问题。希望能得到一些帮助,谢谢。
【问题讨论】:
根据你的截图:你为什么不能只使用ss.getLastColumn()
方法?它应该给你 7 号。
【参考方案1】:
根据你的截图,我想你可以使用getLastColumn()
function onEdit(e)
var ss = SpreadsheetApp.getActiveSheet();
var destRange = ss.getRange(11, ss.getLastColumn() + 1)
if (e.range.columnStart == 6 && e.range.rowStart == 7)
if (e.value == 'Transfer')
var source = ss.getRange("G11:G22")
source.copyTo(destRange, contentsOnly: true )
e.range.clearContent()
如果表格右侧没有更多填充单元格,则无需for
循环获取最后一列。
【讨论】:
以上是关于如何使用谷歌应用脚本找到最后一列?的主要内容,如果未能解决你的问题,请参考以下文章
如何在谷歌应用脚本中将段落 html 字符串转换为没有 html 标签的纯文本?
如何从跨源站点中框架的谷歌应用脚本 webapp 访问相机?