caseに挙げられている、A~Eシートのうちのアクティブシートのアクティブセルを起点として、offsetで移動した先のセルの値をFというシートの一行目の特定箇所に貼り付けたいのですが、どうも意図した数字を拾ってくれないのですが、その原因をご教示いただけますでしょうか?
例えばCシートのH5をアクティブセルにしてこれを回すと、
Fシートの
A1 にCシートのH1(本当はCシートのA1の値を貼り付けたい)
B1 にCシートのB5(本当はCシートのH1の値を貼り付けたい)
G1 にCシートのC5(本当は税と表記してほしい)
O1 にCシートのC5(本当は税と表記してほしい)
D1、L1には意図した通りCシートのC5が反映される
となっております。大変お手数がどうぞよろしくお願い致します。
function 無題() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("F");
sheet.getRange(1, 1).setValue("日付");
sheet.getRange(1, 2).setValue("名");
sheet.getRange(1, 3).setValue("No");
sheet.getRange(1, 4).setValue("科目");
sheet.getRange(1, 5).setValue("補助");
sheet.getRange(1, 7).setValue("税");
sheet.getRange(1, 9).setValue("c");
sheet.getRange(1, 12).setValue("科目");
sheet.getRange(1, 13).setValue("補助");
sheet.getRange(1, 15).setValue("税");
var sheet0 = ss.getActiveSheet();
var cell = sheet0.getActiveCell();
if (cell.getColumn() != 1) {
var row = cell.getRow();
var column = cell.getColumn();
switch (sheet0.getSheetName()){
case 'A':
var value1 = cell.offset((row-1)(-1),0).getValue();
var value2 = cell.offset(0,(column-1)(-1)+2).getValue();
sheet.getRange(1, 1).setValue(value1);
sheet.getRange(1, 4).setValue(value2);
sheet.getRange(1, 13).setValue(value2);
break;
case 'B':
var value3 = cell.offset((row-1)(-1),0).getValue();
var value4 = cell.offset(0,(column-1)(-1)+3).getValue();
var value5 = cell.offset(0,(column-1)*(-1)+1).getValue();
sheet.getRange(1, 1).setValue(value3);
sheet.getRange(1, 4).setValue(value4);
sheet.getRange(1, 12).setValue(value5);
var valueOfTarget = sheet.getRange(1, 1).getValue().split(",")[2];
if (valueOfTarget == 1){
sheet.getRange(1, 13).setValue(value5);
} else if (valueOfTarget == -1) {
sheet.getRange(1, 5).setValue(value5);}
break;
case 'C':
var value6 = cell.offset((row-1)(-1),(column-1)(-1)).getValue();
var value7 = cell.offset((row-1)(-1),0).getValue();
var value8 = cell.offset(0,(column-1)(-1)+2).getValue();
var value9 = cell.offset(0,(column-1)*(-1)+3).getValue();
sheet.getRange(1, 1).setValue(value6);
sheet.getRange(1, 2).setValue(value7);
sheet.getRange(1, 4).setValue(value8);
sheet.getRange(1, 12).setValue(value8);
sheet.getRange(1, 5).setValue(value9);
sheet.getRange(1, 13).setValue(value9);
case 'D':
var value10 = cell.offset((row-1)(-1),0).getValue();
var value11= cell.offset(0,(column-1)(-1)+2).getValue();
var value12= cell.offset(0,(column-1)*(-1)+1).getValue();
sheet.getRange(1, 1).setValue(value10);
sheet.getRange(1, 7).setValue(value11);
sheet.getRange(1, 15).setValue(value11);
sheet.getRange(1, 2).setValue(value12);
break;
case 'E':
var value13 = cell.offset((row-1)(-1),(column-1)(-1)).getValue();
var value14= cell.offset((row-1)(-1),0).getValue();
var value15 = cell.offset(0,(column-1)(-1)+2).getValue();
var value16= cell.offset(0,(column-1)*(-1)+3).getValue();
sheet.getRange(1, 1).setValue(value13);
sheet.getRange(1, 2).setValue(value14);
sheet.getRange(1, 4).setValue(value15);
sheet.getRange(1, 12).setValue(value15);
sheet.getRange(1, 5).setValue(value16);
sheet.getRange(1, 13).setValue(value16);
break;
}
sheet.getRange("A1").activate();
}}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。