首页 > 解决方案 > 使用宏创建一个按钮来查找+替换

问题描述

我想创建一个按钮来对工作表中的一组特定数据执行查找 + 替换。我看过其他问题,但似乎无法让它发挥作用!

这是我的工作表的副本:https ://docs.google.com/spreadsheets/d/1KX4xBzIPq468WN57HKRelkCwN4sr_9Nd3v36m4jj4jI/edit#gid=0

整个 B 列是我要在其中执行 F&R 的数据集。我要使用的值:

查找:“”
替换“%20”

本质上,将 B 列中单词之间的空格替换为 %20。

然后,通过一些连接,将为我创建一些 URL。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


在您的示例电子表格中,似乎单元格“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)

参考:


推荐阅读