Переделать макрос из 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 и с небольшими поправками чтобы первая колонка каждого последующего листа не будет копироваться в первый лист.Вот пример моей таблицы Заранее буду крайне благодарен за помощь. |
|
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-й макрос какой-то подозрительный, не поняла, что он делает)) |
| Часовой пояс GMT +3, время: 04:36. |