Javascript 用officejs链接读写

Javascript 用officejs链接读写,javascript,excel,vba,office-js,Javascript,Excel,Vba,Office Js,我在解决如何在Office JS中链接同步时遇到了一个问题-我想我必须先进行一次同步以读取值,然后再进行另一次同步以将其写回-这一定很简单,但我找不到链接示例 基本上,我试图编写这个VBA代码的等效代码,它通过数组进行读写操作 Application.ScreenUpdating = False d1 = MicroTimer Set rng1 = Worksheets("Sheet1").Range("A1:A1000") Set rng2 = Worksheets("Sheet1").Ran

我在解决如何在Office JS中链接同步时遇到了一个问题-我想我必须先进行一次同步以读取值,然后再进行另一次同步以将其写回-这一定很简单,但我找不到链接示例

基本上,我试图编写这个VBA代码的等效代码,它通过数组进行读写操作

Application.ScreenUpdating = False
d1 = MicroTimer
Set rng1 = Worksheets("Sheet1").Range("A1:A1000")
Set rng2 = Worksheets("Sheet1").Range("D1:D1000")
var = rng1.Value2
rng2.Value2 = var
d2 = (MicroTimer - d1) * 1000

MsgBox d2
甚至更简单

Worksheets("Sheet1").Range("D1:D1000").Value2=Worksheets("Sheet1").Range("A1:A1000").Value2

您可以使用OfficeJS提供的范围类。 这是完整的文档:(同时看一下这里给出的示例)

要复制范围,您需要创建两个范围,并将
.values[][]
从源复制到目标

关于如何复制二维数组(在本例中:
values[][]
),您应该使用google


要确定时间,可以使用Java提供的
Date()
-类

要将值从一个范围复制到另一个范围,可以使用以下代码:

Excel.run(function(context) {
    var range1 = context.workbook.worksheets.getItem("Sheet1").getRange("A1:A1000").load('values');
    return context.sync()
        .then(() => {
            var range2 = context.workbook.worksheets.getItem("Sheet1").getRange("D1:D1000");
            range2.values = range1.values;
            return context.sync();
        });
});

是的,我知道如何做到这一点:但它并没有告诉我如何使用Sync将写链接到读:所有示例都只使用一个Sync,而Office JS似乎不允许在一个Sync块中进行读写。谢谢Jakob,这看起来很简单