Копирование данных с одного листа на другой для создания этапов - перемещение одной ячейки в другую - PullRequest
0 голосов
/ 22 апреля 2020

В настоящее время я работаю над черновым выбором / запретом для игры в турнирном стиле для 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');

}
  1. Когда копирование выполняется с черновика на вновь созданную страницу, я хочу, чтобы оно копировало только значения, а не копировать формула, которую я могу ' t понять, как использовать PASTE_VALUES, а также PASTE_COLUMN_WIDTHS.
  2. Я создаю страницу истории матчей, как показано выше - когда этот скрипт запускается, мне нужно, чтобы он делал именно то, что делает сейчас, однако мне также нужно, чтобы он копировал данные из черновика в историю матчей. Так, например, когда скрипт запускается, он должен скопировать его в черновик истории и сохранить его. Затем следует скопировать черновик! C4 -> История матчей! M. Он также должен вставить его в следующую доступную строку.

Поэтому значения, которые вы видите на черновой странице после матча, должны появиться на странице истории матчей. Вот чего я изо всех сил пытаюсь достичь.

Образец листа можно найти здесь

Google Sheet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...