我想創建一個按鈕來對我的作業表中的一組特定資料執行查找 替換。我看過其他問題,但似乎無法讓它發揮作用!
這是我的作業表的副本:https : //docs.google.com/spreadsheets/d/1KX4xBzIPq468WN57HKRelkCwN4sr_9Nd3v36m4jj4jI/edit#gid=0
整個 B 列是我要在其中執行 F&R 的資料集。我要使用的值:
查找:“ ”
替換“ ”
本質上,用 替換 B 列中單詞之間的空格。
這個,通過一些連接將為我創建一些 URL。
uj5u.com熱心網友回復:
function myFunk() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const sr = 3;//data start row
const vs = sh.getRange(sr, 2, sh.getLastRow() - sr 1).getDisplayValues().map(r => [r[0].replace(/ /g, ' ')]);
sh.getRange(sr, 2, vs.length, vs[0].length).setValues(vs);
}
如果你想從頭到尾剪掉空格,你可以添加 trim();
function myFunk() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const sr = 3;//data start row
const vs = sh.getRange(sr, 2, sh.getLastRow() - sr 1).getDisplayValues().map(r => [r[0].trim().replace(/ /g, ' ')]);
sh.getRange(sr, 2, vs.length, vs[0].length).setValues(vs);
}
要插入按鈕,您可以使用插入繪圖并繪制按鈕保存并關閉。單擊右上角的 并選擇附加到腳本的選項。就是這樣。我個人喜歡使用側邊欄并在 html 中創建按鈕。
uj5u.com熱心網友回復:
在您的示例電子表格中,單元格“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^",B2)。在這種情況下,如何修改公式如下?
從:
=CONCATENATE($A$2,"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA^",B2)
到:
=CONCATENATE($A$2,"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA^",SUBSTITUTE(B2," "," "))
- 通過這種修改,
https://www.harrods.com/en-gb/shopping/women-clothing/brands#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA^4 Moncler Simone Rocha在單元格“C2”處獲得。
如果您想使用 Google Apps 腳本來實作這一點,那么下面的腳本如何?
示例腳本:
請將以下腳本復制粘貼到電子表格的腳本編輯器中并保存。當您想使用影像按鈕運行此腳本時,請將影像放入電子表格并myFunction為按鈕指定函式名稱。這樣,當您單擊按鈕時,腳本就會作業。并且,當腳本運行時, 列“B”的值的單個空格被替換為 .
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Filter URLs");
sheet.getRange("B2:B" sheet.getLastRow()).createTextFinder(" ").replaceAllWith(" ");
}
筆記:
作為附加資訊,當您想使用 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^" b.replace(/ /g," ")]); 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”列時,請修改
參考:
- 代替
- 類范圍的 createTextFinder(findText)
- 類文本查找器
uj5u.com熱心網友回復:
我在您的示例電子表格中添加了一個新作業表(“過濾 URL - Erik”)。在那里,我洗掉了 C 列(包括標題)中的所有內容,并在單元格 C1 中放置了以下單個公式:
=ArrayFormula({"Output";IF(B2:B="",,$A$2&"#dcp=1&dppp=100&OrderBy=rank&Filter=ABRA^"&SUBSTITUTE(TRIM(B2:B)," ","%"))})
擴展@Tanaike 的觀點之一,這個公式將為所有行創建標題和所有結果,而無需拖動公式、使用腳本或使用其他查找/替換方法。
uj5u.com熱心網友回復:
如果您只想創建網址,請使用
=ENCODEURL(B2)
反而。這將自動將所有非 url 字符轉換為其百分比編碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346519.html
上一篇:C 嵌套while回圈只運行一次
