gpt4 book ai didi

google-apps-script - 使用 ReplaceWith 查找和替换 Google 表格中的文本

转载 作者:行者123 更新时间:2023-12-02 01:54:54 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我无法在 stackoverflow、youtube 或开发者 (google) 网站上找到此问题的答案。

我正在尝试使用 createTextFinder 查找某个单词,并将其替换为新单词。理想情况下,我想替换该单词的第二个实例而不是第一个实例,但是如果不可能,那也可以。我还试图确保我的函数可以动态找到这些单词,而不是停留在定义的范围内,例如 A1:D2。

因此,对于下面的示例,尝试将 Apple 的第二个实例更改为 Pie。

我发现真正奇怪的是,replaceWith 似乎不起作用,但replaceAllWith 确实起作用。

问题:

  • 无法让replaceWith 与createTextFinder 方法一起使用。收到错误

"Exception: Service error: Spreadsheets"

当前工作表: current sheet

预期结果: expected outcome

我尝试过的故障排除:

  • 尝试使用 startFrom 并使用 Apple 的第二个实例之前的范围,但这似乎不起作用
  • 尝试在同一功能中创建另一个文本查找器,但我认为您不被允许这样做?我这样做是为了进行之前的尝试
  • 将replaceWith更改为replaceAllWith,这有效,但随后尝试让它在同一函数中找到“Pie”并将第一个实例更改回“Apple”,但这不起作用
  • 也尝试使用 findNext() 功能,但不幸的是这不起作用,而且我不确定如何将其与 ReplaceWith 方法一起使用。

在这些尝试期间发生的常见错误是程序指出我没有正确的函数或参数与方法签名不匹配

代码:

function findText() {
const workSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet1');//I have a few tabs and would like to call to them directly
const tf = workSheet.createTextFinder('Apple');
tf.matchEntireCell(true).matchCase(false);//finds text "Apple" exactly

tf.replaceWith('Pie');

}//end of function findText

资源:

Google Developers on replaceWith

最佳答案

function replacesecondinstanceofword( word = "Apple",replacement = "Peach") {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const tf = sh.createTextFinder(word).matchEntireCell(true).findAll();
tf.forEach((f,i) => {
if(i == 1) {
sh.getRange(f.getRow(),f.getColumn()).setValue(replacement)
}
});

}

Learn More

关于google-apps-script - 使用 ReplaceWith 查找和替换 Google 表格中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69745483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com