Существует ли Javascript, эквивалентный Workbook_Open () для Microsoft Excel Online с использованием ScriptLab? - PullRequest
0 голосов
/ 20 мая 2019

Мой отдел скоро перейдет на Office 365, и мне было поручено разработать стандартный документ для отслеживания проекта, который можно будет использовать в Excel Online.

Мой текущий автономный файл (Excel 2013) использует сценарий VBA для выполнения ряда задач, которые будут обновлять исторические данные в файле при открытии с использованием Workbook_Open () {пример кода ниже}.

Я понимаю, что VBA не работает с Office Online и что мне нужно будет использовать Javasript. У меня есть надстройка Scriptlab для Office Online, но я никогда не использовал Javascript, прежде чем изо всех сил пытаюсь найти эквивалентный код для запуска задачи, как и когда рабочая книга открыта.

Извиняюсь, если это дублирующий вопрос или он не совсем имеет смысла, так как я действительно плохо знаком с любой формой программирования, на самом деле я боюсь (я только сделал автономный файл на прошлой неделе).

Спасибо за ваше время и помощь в продвижении

Пример кода из автономной версии (в VBA)

{Пожалуйста, обратите внимание, что это не элегантно, я уверен, но только делает то, что мне нужно: D}

Private Sub Workbook_Open()

If Worksheets("DATA").Range("A215").Value <> Range("A217") Then
Sheets("DATA").Select
    Range("L215:S215").Select
Selection.Copy
Range("L218").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("X215:AE215").Select
Selection.Copy
Range("X218").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("AJ215:AQ215").Select
Selection.Copy
Range("AJ218").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("AV215:BC215").Select
Selection.Copy
Range("AV218").End(xlDown).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("J216").Select
Range("E216").Select
Application.CutCopyMode = False
Range("E216").Select
Selection.ClearContents
Range("A217").Select
Selection.Copy
Range("A219").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("A217") = "=TODAY()"
Range("A217").Select
Selection.Copy
Range("A217").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
End If

Call ThisWorkbook.Refresh_Cell
Call ThisWorkbook.Refresh_Cell_B

Желаемый результат для вышеупомянутого - скопировать несколько ячеек и вставить их в следующую доступную строку после проверки, если задача уже была выполнена в этот день.

Я верю, что смогу разработать остальную часть кода для Javascript, но я борюсь с эквивалентом Workbook_Open ().

...