Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2017, 03:51
Новичок на форуме
Отправить личное сообщение для SnakeJkeeee Посмотреть профиль Найти все сообщения от SnakeJkeeee
 
Регистрация: 03.03.2017
Сообщений: 1

Переделать макрос из VB в JScript
Здравствуйте. Есть необходимость переделать макрос написанный в VB на JS потому что google exel именно его и понимает. Суть макроса это копирование\перенос строк из одного листа в другой нажатием кнопки или автоматически. Вот как этот макрос выглядит на VB(делал не сам)
Sub sborka()
If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then
Sheets(1).Range("a1").CurrentRegion.Clear
s_ = Sheets.Count
Sheets(2).Range("1:1").Copy Sheets(1).Range("a1")
For i = 2 To s_
    r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1
    Sheets(i).Range("a1").CurrentRegion.Offset(1).Copy Sheets(1).Range("a" & r_)
Next
End If
End Sub
(это я так понимаю кнопка....) и вот еще
Sub kleine_Hexe()
Dim arr, i As Long, j As Long, k As Long
Application.ScreenUpdating = 0
arr = ActiveSheet.UsedRange.Value
For i = 2 To UBound(arr)
    For j = UBound(arr, 2) To 2 Step -1
        If arr(i, j) = "" Then
        GoTo OUT
        Else
            For k = j To 2 Step -1
                If arr(i, k) = "" Then
                Range(Cells(i, k + 1), Cells(i, j)).Cut Destination:=Range(Cells(i, k), Cells(i, j - 1))
                GoTo OUT
                End If
            Next
        End If
    Next
OUT:
Next
Application.ScreenUpdating = 1
End Sub
а вот пример документа где он используется https://drive.google.com/open?id=0B1...W5Xenlkckl6Y1E
Мне надо почти все тоже самое только на JS и с небольшими поправками чтобы первая колонка каждого последующего листа не будет копироваться в первый лист.Вот пример моей таблицы
Заранее буду крайне благодарен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2017, 21:44
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Перевод на JS
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 04.03.2017, 22:25
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

SnakeJkeeee, здравствуйте.
Посмотрите такой вариант:
//1-й макрос
function sborka() {
  var book = SpreadsheetApp.getActiveSpreadsheet(),
      iSheets = book.getSheets().length,
      lr, lc, currR;
  lr = book.getSheets()[0].getDataRange().getLastRow();
  lc = book.getSheets()[0].getDataRange().getLastColumn();
  book.getSheets()[0].getRange(2, 2, lr-1, lc-1).clearContent();
  currR = 1;
  for (var i = 1; i < iSheets; i++){
    if(book.getSheets()[i].getDataRange().getNumRows() > 1){
      lr = book.getSheets()[i].getDataRange().getLastRow();
      lc = book.getSheets()[i].getDataRange().getLastColumn();
      book.getSheets()[i].getRange(2, 2, lr-1, lc-1).copyTo(book.getSheets()[0].getRange(currR+1, 2), {contentsOnly:true});
      currR = book.getSheets()[0].getDataRange().getLastRow();
    }
  }
}

//второй макрос
function kleine_Hexe(){
}

//Добавляем кнопку на ленту
function onOpen() {
   var book = SpreadsheetApp.getActiveSpreadsheet();
   var menuEntries = [];
   menuEntries.push({name: "Сборка", functionName: "sborka"});
   //menuEntries.push({name: "kleine_Hexe", functionName: "kleine_Hexe"});

   book.addMenu("Скрипты для сбора", menuEntries);
}


2-й макрос какой-то подозрительный, не поняла, что он делает))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос для Excel в javascript klicken Internet Explorer 13 06.07.2012 14:33
Jscript vs VBscript zzz Общие вопросы Javascript 18 17.08.2009 11:11