javascript - 使用宏创建一个按钮来查找+替换
问题描述
我想创建一个按钮来对工作表中的一组特定数据执行查找 + 替换。我看过其他问题,但似乎无法让它发挥作用!
这是我的工作表的副本:https ://docs.google.com/spreadsheets/d/1KX4xBzIPq468WN57HKRelkCwN4sr_9Nd3v36m4jj4jI/edit#gid=0
整个 B 列是我要在其中执行 F&R 的数据集。我要使用的值:
查找:“”
替换“%20”
本质上,将 B 列中单词之间的空格替换为 %20。
然后,通过一些连接,将为我创建一些 URL。
解决方案
在您的示例电子表格中,似乎单元格“A2”、“B2”分别是 和 的值。https://www.harrods.com/en-gb/shopping/women-clothing/brands
并且4 Moncler Simone Rocha
,在输出列中,单元格“C2”是 的公式=CONCATENATE($A$2,"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA%5E",B2)
。在这种情况下,如何修改公式如下?
从:
=CONCATENATE($A$2,"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA%5E",B2)
至:
=CONCATENATE($A$2,"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA%5E",SUBSTITUTE(B2," ","%20"))
- 通过这种修改,
https://www.harrods.com/en-gb/shopping/women-clothing/brands#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA%5E4%20Moncler%20Simone%20Rocha
在单元格“C2”处获得。
如果您想使用 Google Apps 脚本实现此目的,那么下面的脚本怎么样?
示例脚本:
请将以下脚本复制并粘贴到电子表格的脚本编辑器中并保存。当您想使用图像按钮运行此脚本时,请将图像放入电子表格并将功能名称分配给myFunction
按钮。这样,当您单击按钮时,脚本就会起作用。
并且,当脚本运行时, “B”列值的一个空格被替换为%20
.
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Filter URLs");
sheet.getRange("B2:B" + sheet.getLastRow()).createTextFinder(" ").replaceAllWith("%20");
}
笔记:
作为附加信息,当您想使用 Google Apps 脚本转换当前公式时,您还可以使用以下脚本。
function myFunction2() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Filter URLs"); const url = sheet.getRange("A2").getValue(); const values = sheet.getRange("B2:B" + sheet.getLastRow()).getValues().map(([b]) => [url + "#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA%5E" + b.replace(/ /g,"%20")]); sheet.getRange(2, 4, values.length, 1).setValues(values); }
- 运行此脚本时,URL 被放入“D”列。当您要放置“C”列时,请修改
getRange(2, 4, values.length, 1)
为getRange(2, 3, values.length, 1)
。
- 运行此脚本时,URL 被放入“D”列。当您要放置“C”列时,请修改