Мой отдел скоро перейдет на 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 ().