免責事項:私は初心者です。私はスクリプトを少し理解していますが、それを書くのは私にとって苦痛であり、主にループと配列を使用しているため、次のようになります。
特定の列 (この場合は H [8]) からすべてのデータを取得しようとしています。その列の各セルの値を確認し、y の場合は [はい] に変更します。n の場合は No に変更します。空の場合は、そのままにして次のセルに移動します。
これが私がこれまでに持っているものです。いつものように、かなり近いと思いますが、アクティブセルの値を設定できず、どこを台無しにしているのかわかりません。ある時点で、実際に列の値を [はい] に変更しました (これらの場合、元に戻すことができてとても感謝しています)。
シート例:
..... COL-H
r1... [service] <-- header
r2... y
r3... y
r4... n
r5... _ <-- empty
r6... y
意図:すべての y を Yes に、すべての n を No に変更します (空白のセルをスキップします)。
私がこれまでに試したこと:
関数試行 1
function Thing1() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("mySheet");
var lrow = ss.getLastRow();
var rng = ss.getRange(2, 8, lrow - 1, 1);
var data = rng.getValues();
for (var i=0; i < data.length; i++) {
if (data[i][0] == "y") {
data[i][0] == "Yes";
}
}
}
関数試行 2
function Thing2() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("mySheet");
var lrow = ss.getLastRow();
var rng = ss.getRange(2, 8, lrow - 1, 1);
var data = rng.getValues();
for (var i=0; i < data.length; i++) {
if (data[i][0] == "n") {
data.setValue("No");
} else if (data[i][0] == "y") {
data.setValue("Yes");
}
}
}
使用法:
ここでの作業が完了したら、関数を変更して、任意の列をターゲットにして、ある値を別の値に変更できるようにします (そのための方法は既にありますが、値を設定できる必要があります)。=replace(sheet, col, orig_value, new_value) のようになります。以下にも載せておきます。
助けてくれてありがとう。
列内で検索および置換するための完成したコード
function replace(sheet, col, origV1, newV1, origV2, newV2) {
// What is the name of the sheet and numeric value of the column you want to search?
var sheet = Browser.inputBox('Enter the target sheet name:');
var col = Browser.inputBox('Enter the numeric value of the column you\'re searching thru');
// Add old and new targets to change (Instance 1):
var origV1 = Browser.inputBox('[Instance 1:] What old value do you want to replace?');
var newV1 = Browser.inputBox('[Instance 1:] What new value is replacing the old?');
// Optional - Add old and new targets to change (Instance 2):
var origV2 = Browser.inputBox('[Instance 2:] What old value do you want to replace?');
var newV2 = Browser.inputBox('[Instance 2:] What new value is replacing the old?');
// Code to search and replace data within the column
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet);
var lrow = ss.getLastRow();
var rng = ss.getRange(2, col, lrow - 1, 1);
var data = rng.getValues();
for (var i=0; i < data.length; i++) {
if (data[i][0] == origV1) {
data[i][0] = newV1;
} else if (data[i][0] == origV2) {
data[i][0] = newV2;
}
}
rng.setValues(data);
}
これが誰かを助けることを願っています。ありがとう@ScampMichael!