1

列Bのセルをコピーするには、次のスクリプトを適用する(またはバージョンを表示しますか?)Sheet2(Dには "NOT_ON_WORKSHEET"が含まれています)現在の第1列(A)の代わりにシート1の第4列(D)の最後の行まで(onEditかどうか)を指定します。 setValueを使用しようとしましたが、エラーなしで適用することはできません。Sheet1のSheet2からSheet1のカスタムセルに自動的にコピー

function onEdit(e) { 
var ss = e.source, 
    sheet = ss.getActiveSheet(); 
if (sheet.getName() !== 'Sheet2' || e.range.columnStart !== 4 || e.value !== 'NOT_ON_WORKSHEET') return; 
e.source.getSheetByName('Sheet1') 
    .appendRow(e.range.offset(0, -2, 1, 1) 
    .getValues()[0]); 
} 

SHEET 1: 
    Column A | Column(s)… | Column D 
    ...  | ...   | #Name# 
    ================================= 
    ...  |    | Qwe 
      | ...   | Asd 
    ...  | ...   | Zxc 
      |    | <"little bug" must be copied here (Not row, only one cell B)> 

SHEET 2: 
    Column A | Column B | Column D 
    ...  | #Name#  | #Is on Sheet1?# 
    ================================= 
      | Qwe   | 
    ...  | Asd   | 
      | Zxc   | 
    ...  | little bug | NOT_ON_WORKSHEET 

(ogirinal TNX JPV用)のみの代わりにDの列A(シート1)にB(シート2)から現在のスクリプトをコピーし細胞

+0

2番目のoffsteパラメータを-2から1に変更することはできませんか? –

+0

@Robin Gertenbach、これを1に変更すると、必要な「B」の代わりにSheet2の列「D」(columnStart!== 4)から他のセルがコピーされます。これが-2の理由です(B)。とにかくそれはまだ選択された(1または-2または-4または他の)セルのいずれかを** Column A -Sheet1 **にコピーしますが、Cellを** Column D -Sheet1 **にコピーする必要があります。作業シートの構造 - 列Aには既に他の重要な情報が含まれています:-( – Stz

答えて

0

さて、私は」ビジュアル解説最後にそれを作った。トピックの問題とうまくいっています。

function onEdit(e) { 
    var ss = SpreadsheetApp.getActive(); 
    var sheet = ss.getActiveSheet(); 
if (sheet.getName() !== '2' || e.range.getColumn() !== 4 || e.value !== 'Yes') return; 
    var value = e.range.offset(0,-2,1,1).getValue(); 
    sheet = e.source.getSheetByName('1'); 
    var grd = sheet.getRange("D:D").getValues(); 
    var maxIndex = grd.reduce(function(maxIndex, row, index) { 
    return row[0] === "" ? maxIndex : index; 
    }, 0); 
    sheet.getRange(maxIndex+2,e.range.getColumn()-2,1,1).setValue(value); 
} 
関連する問題