當前問題:
- 我試圖讓我的腳本查看下面示例中的 A 列,如果一個單元格包含某個單詞,則將文本插入到 B 列中它旁邊的單元格中。
- 我需要讓腳本通過名稱而不是硬參考來查找列標題(例如,查找名為“成分”的列)。
- 如果匹配,我不確定如何讓我的腳本在單元格旁邊插入文本
到目前為止,我只用蘋果制作了我的腳本,因為我認為我可以從那里開始。
我希望使用一個腳本來使用某種形式的陣列串列,這樣如果一個單元格包含該串列中的一個單詞,它就會將文本插入到相鄰的單元格中。
然而。我不太知道該怎么做,所以我認為我能夠研究的內容可能就足夠了。我找不到有關 whenTextContains 過濾器如何作業的檔案,所以我認為 match 是下一個最佳答案?
目前我的代碼有效,但它沒有將零食放在正確的位置(例如,將它放在 B1 而不是蘋果的 B2)。
我試過的:
- 制作了一個簡單的代碼,但需要對列/行參考進行硬參考
- 嘗試了一些不同的迭代,但似乎不起作用
當前作業表示例:

所需結果示例:

有效但需要硬參考列/行的簡單代碼:
function snack() {
const ws = SpreadsheetApp.getActive().getSheetByName('Sheet1');
var indgredientRange = ws.getRange(2,1);
var iValues = indgredientRange.getValues();
for (var i in iValues){
if(iValues[i][0].match("apple")!=null){
ws.getRange(2,2).setValue('apple pie');
}
}
我的代碼:
function snack() {
const ws = SpreadsheetApp.getActive().getSheetByName('Sheet1');
//search headers (converted to sep. function to return row & column)
const [tfIRow, tfICol] = getLocationOfText(ws,'Ingredient');
const [tfSnackRow,tfSnackCol] = getLocationOfText(ws,'Snack');
const [tfRatingRow,tfRatingCol] = getLocationOfText (ws,'Rating');
//snack arrays below
let applesnack = ['apple pie']
let flowersnack = ['flower seeds']
let orangesnack = ['orange slices']
let baconsnack = ['bacon pie']
let ewsnack = ['ew']
function getLocationOfText(sheet, text) {
const tf = sheet.createTextFinder(text);
tf.matchEntireCell(true).matchCase(false);
const tfNext = tf.findNext();
return [tfNext.getRow(), tfNext.getColumn()]
}//end of getLocationofText function
//action script below:
var indgredientRange = ws.getRange(tfIRow,tfICol,ws.getLastRow(),ws.getLastColumn());
var iValues = indgredientRange.getValues();
for (var i in iValues){
if(iValues[i][0].match("apple")!=null){
ws.getRange(tfSnackRow,tfSnackCol).setValue(applesnack);
}
}
}//end of snack function
原始資料:
| 成分 | 小吃 | 評分 |
|---|---|---|
| 蘋果 | ||
| 花 | ||
| 橘子 | ||
| 熏肉 | ||
| 檸檬 | ||
| 蘋果苦味 | ||
| 培根塊 |
參考:
后:

參考:
參考:
- 目的
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367948.html標籤:谷歌应用程序脚本
