2017-07-30 52 views
3

在我的Google电子表格的H列中,我有一个IP号码列表。我需要一个脚本什么将采取这些数字并获取国家名称。我需要这个脚本,因为电子表格是从网页表单填充的。我拥有的是一个完美的公式,但我必须在每次提交表单时手动复制公式。由于我每天都收到很多意见,因此手动完成这项工作非常繁琐。我需要脚本在电子表格更新上运行。我拥有的公式是这样的:使用谷歌床单脚本从一系列IP号码中获取国家/地区名称,并将结果粘贴到另一列

=query(importhtml("http://whatismyipaddress.com/ip/" & H1526, "table", 2), "select Col2 where Col1 = 'Country:' ", 0) 

最后一个填充的行是H1526。我尝试了“ARRAYFORMULA”,但没有任何数组公式似乎适用于我的查询函数。我有IP的列是H,我需要列I中的国家名称。

回答

0

您可以在提交Google表单时编写脚本。你也需要设置相同的触发器。希望这可以帮助。

enter image description here

function OnSubmit(e){ 
    var sheetDatabase = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    sheetDatabase.getRange(sheetDatabase.getLastRow(), 8).setFormula('=query(importhtml("http://whatismyipaddress.com/ip/"&I'+sheetDatabase.getLastRow()+', "table", 2), "select Col2 where Col1 = \'Country:\' ", 0)'); 
} 
+0

优秀!它的工作!我只需要改变8和9的“&I”,因为它是在错误的列和错误的行中复制公式。但它的工作! :D非常感谢! 现在我还有一个问题。如何使表单自动复制通过应用脚本获得的国家/地区名称并将其粘贴到同一个单元格中(意思是替换)?因为当我有2000多行时,如果我用公式来保存单元格,那么表单需要很长时间来检索数据。我想在得到结果后复制粘贴,以便快速加载表单。 –

相关问题