Конвертировать VBA в Java Google Script - PullRequest
0 голосов
/ 18 ноября 2018

У вас есть VBA ниже, и мне нужно вставить его в Google Sheet,

Кто-нибудь может помочь с конвертацией?

Sub Activate_Sheet()
    Sheets(Sheets("Main").Range("A1").Value).Activate
End Sub

Спасибо,

1 Ответ

0 голосов
/ 03 декабря 2018

Этот скрипт получает значение в ячейке A1 в sheet () [0], а затем перемещается к этому номеру листа.

function so_53361440() {
  // set up spreadsheet
    var ss = SpreadsheetApp.getActiveSpreadsheet();

    // set sheet 0 as the active sheet
  var sheet = ss.getSheets()[0];

    // get the value in cell A1
  var cell = sheet.getRange("A1").getValue();
  // Logger.log("value of cell = "+cell);// DEBUG

    // Convert number to string
  var sheetname = ""+ cell;
  // Logger.log("sheetname = "+sheetname);// DEBUG

    // set sheet by name and move to new sheet
    var mysheet = ss.getSheetByName(sheetname);
    ss.setActiveSheet(mysheet);
}

Вариация на тему
С 300 листами возвращение к листу () [0] разочаровывает. Так что этот небольшой вариант предназначен для создания пользовательского меню, которое будет запрашивать номер листа в поле ввода. Остальной код такой же

function so_53361440_01() {
    // setup ui
  var ui = SpreadsheetApp.getUi(); 

  var result = ui.prompt(
      'What sheet do you want?',
      'Please enter a number:',
      ui.ButtonSet.OK_CANCEL);

  // Process the user's response.
  var button = result.getSelectedButton();
  var text = result.getResponseText();
  if (button == ui.Button.OK) {
    // User clicked "OK".
    //ui.alert('Sheet is ' + text + '.');
  } else if (button == ui.Button.CANCEL) {
    // User clicked "Cancel".
    ui.alert('Operation Cancelled.');
  } else if (button == ui.Button.CLOSE) {
    // User clicked X in the title bar.
    ui.alert('Input Box closed - no action taken.');
  }

    // set up spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

    // assign the UI value to a variable
  var cell = text;
  // Logger.log("value of cell = "+cell);//DEBUG

    // convert the variable to a string
  var sheetname = ""+ cell;
  // Logger.log("sheetname = "+sheetname);// DEBUG

    // set the sheetname to the variable and goto that sheet
    var mysheet = ss.getSheetByName(sheetname);
    ss.setActiveSheet(mysheet);

}

function onOpen() {
 SpreadsheetApp.getUi() 
      .createMenu('Change Sheet')
      .addItem('Pick a sheet', 'so_53361440_01')
      .addToUi();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...