В настоящее время я работаю над черновым выбором / запретом для игры в турнирном стиле для EVE-Online.
Это моя черновая страница: Черновик
Что У меня есть на другом листе это:
История матчей
Когда черновик и последующий матч закончен, я запускаю следующее, которое в основном скопирует черновик и вставит его в новый лист и имя на основе динамического c имени на странице черновика. Затем он очистит черновик страницы, готовый к следующему черновику. В чем я хотел бы помочь, так это в следующем:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Draft Options')
.addItem('Save and Create New Draft', 'userActionResetByRangesAddresses')
.addToUi();
}
function userActionResetByRangesAddresses(){
var sheet = SpreadsheetApp.getActiveSheet();
var rangesAddressesList = ['F4:G22', 'D4:D8', 'I4:I8'];
resetByRangesList_(sheet, rangesAddressesList);
}
function resetByRangesList_(sheet, rangesAddressesList){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Draft");
//Copy and Paste Draft for visual
//Copy and paste with width and height Values
// Create a new sheet
//gets the value of A1 from the draft page
var range = sheet.getRange("A1")
//sets the name of the new sheet to the value of a1 from drafts
var newSheet = ss.insertSheet(range.getValue());
// Get the range from the sheet you will copy from.
var weaponsRange = sheet.getRange("B2:K33");
// Get the range of the sheet that is your paste target.
var pasteRange = newSheet.getRange("B3:K33");
//
var columnWidths = SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS
weaponsRange.copyTo(pasteRange);
weaponsRange.copyTo(pasteRange,columnWidths,false);
//Clear content
sheet.getRangeList(rangesAddressesList).clearContent()
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ss is now the spreadsheet the script is associated with
var sheet = ss.getSheets()[0]; // sheets are counted starting from 0
// sheet is the first worksheet in the spreadsheet
//repopulates the Bans and Pick defaults
var cell = sheet.getRange("F5");
cell.setValue('Ban 1');
var cell = sheet.getRange("G6");
cell.setValue('Ban 2');
var cell = sheet.getRange("F7");
cell.setValue('Ban 3');
var cell = sheet.getRange("G8");
cell.setValue('Ban 4');
var cell = sheet.getRange("F9");
cell.setValue('Ban 5');
var cell = sheet.getRange("G10");
cell.setValue('Ban 6');
var cell = sheet.getRange("F17");
cell.setValue('Ban 7');
var cell = sheet.getRange("G18");
cell.setValue('Ban 8');
var cell = sheet.getRange("F19");
var cell = sheet.getRange("F11");
cell.setValue('Pick 1');
var cell = sheet.getRange("G12");
cell.setValue('Pick 2');
var cell = sheet.getRange("G13");
cell.setValue('Pick 3');
var cell = sheet.getRange("F14");
cell.setValue('Pick 4');
var cell = sheet.getRange("F15");
cell.setValue('Pick 5');
var cell = sheet.getRange("G16");
cell.setValue('Pick 6');
var cell = sheet.getRange("G19");
cell.setValue('Pick 7');
var cell = sheet.getRange("F20");
cell.setValue('Pick 8');
var cell = sheet.getRange("F21");
cell.setValue('Pick 9');
var cell = sheet.getRange("G22");
cell.setValue('Pick 10');
}
- Когда копирование выполняется с черновика на вновь созданную страницу, я хочу, чтобы оно копировало только значения, а не копировать формула, которую я могу ' t понять, как использовать PASTE_VALUES, а также PASTE_COLUMN_WIDTHS.
- Я создаю страницу истории матчей, как показано выше - когда этот скрипт запускается, мне нужно, чтобы он делал именно то, что делает сейчас, однако мне также нужно, чтобы он копировал данные из черновика в историю матчей. Так, например, когда скрипт запускается, он должен скопировать его в черновик истории и сохранить его. Затем следует скопировать черновик! C4 -> История матчей! M. Он также должен вставить его в следующую доступную строку.
Поэтому значения, которые вы видите на черновой странице после матча, должны появиться на странице истории матчей. Вот чего я изо всех сил пытаюсь достичь.
Образец листа можно найти здесь
Google Sheet