次のコードでは、あなたのGoogleスプレッドシートテーブルの行を交互に書式を設定します:
function lastLine() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:A").getValues();
return range.filter(String).length;
}
function setConditionalFormat() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheets()[0]
var myRange = {
'sheetId': sheet.getSheetId(),
'startRowIndex': 1,
'endRowIndex': lastLine(),
'startColumnIndex': 0,
'endColumnIndex': 8
}
var format_req = {
'requests': [
{'addConditionalFormatRule': {
'index': 0,
'rule': {
'ranges': [ myRange ],
'booleanRule': {
'format': {'backgroundColor': {'red': 1, 'green': 1, 'blue': 1, 'alpha': 1}},
'condition': {
'type': 'CUSTOM_FORMULA',
'values': [{'userEnteredValue': '=ISEVEN(ROW())'}]
},
},
},
}
},
{'addConditionalFormatRule': {
'index': 0,
'rule': {
'ranges': [ myRange ],
'booleanRule': {
'format': {'backgroundColor': {'red': 222/255, 'green': 235/255, 'blue': 246/255, 'alpha': 0.7}},
'condition': {
'type': 'CUSTOM_FORMULA',
'values':
[{'userEnteredValue': '=ISODD(ROW())'}]
},
},
},
}
}
],
'includeSpreadsheetInResponse': false,
}
Sheets.Spreadsheets.batchUpdate(JSON.stringify(format_req), ss.getId())
}
は非常に有望に見えました。ただし、copyTo()の範囲は、「申し訳ありません。サーバーエラーが発生しました。少し待ってからもう一度お試しください。 – Gary
私はそれを試してみるためにスクリプトを書いてあります(それは私にとってはうまくいきます):https://docs.google.com/spreadsheets/d/1C_hlAX8KTQa33ltANKEalsy18-TDy6c4ArLwBre3yL4/edit#gid=2037749471試してみてくださいそれがあなたのために働かないなら私に知らせてください。 –
フォーマットを転送するメソッドがあります。range.copyFormatToRange():https://developers.google.com/apps-script/reference/spreadsheet/range#copyFormatToRange(Integer,Integer,Integer,Integer,Integer) 以前は「申し訳ありません。サーバーエラーが発生しました。少し待ってからもう一度お試しください。答えの中の方法を使って。 –