我的部门很快将转移到Office 365,我的任务是开发可在Excel Online上使用的标准项目跟踪文档。
我当前的脱机文件(Excel 2013)使用VBA脚本执行一些任务,这些任务将在使用Workbook_Open()打开时更新文件中的历史数据(以下代码示例)。
我了解VBA不能与Office Online一起使用,并且需要使用Javasript。我有用于Office Online的Scriptlab插件,但是在努力寻找与工作簿打开时等效的代码来运行任务之前,我从未使用过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()。