2017-05-16 15 views
0

Excel Javascript APIを使用して2つのワークシートの位置を取得するにはどうすればよいですか?Excel Javascript APIで複数のシートの位置を取得

Excel.run(function (ctx) { 
    var wSheetName = 'Sheet1'; 
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName); 
    worksheet.load('position') 
    return ctx.sync().then(function() { 
     console.log(worksheet.position); 
    }); 
}); 

=>を、コンソール

0を記録します。しかし、私は2つのワークシートのための位置を取得しようとする場合、それは何をログに記録しない:ここでは

はそれだけで一枚のためにどのように動作するかです:

Excel.run(function (ctx) { 
    var wSheetName = 'Sheet1'; 
    var wSheetName2 = 'Evars'; 
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName); 
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2); 
    worksheet.load('position') 
    worksheet2.load('position') 
    return ctx.sync().then(function() { 
     console.log(worksheet.position); 
     console.log(worksheet2.position); 
    }); 
}); 

答えて

0

私はちょうどあなたのコードを試して、それは正常に動作します。私はあなたが単純にそれらの名前の1つでシートを持っていないのだろうかと思います。例外を投げていました。あなたがキャッチハンドラを持っていなかったので、あなたには静かに見えていました。

以下のコード、基本的にあなたと同じですがcatchステートメントでは、正常に動作します:

Excel.run(function(ctx) { 
    var wSheetName = 'Sheet1'; 
    var wSheetName2 = 'Sheet2'; 
    var worksheet = ctx.workbook.worksheets.getItem(wSheetName); 
    var worksheet2 = ctx.workbook.worksheets.getItem(wSheetName2); 
    worksheet.load('name, position') 
    worksheet2.load('name, position') 
    return ctx.sync().then(function() { 
     console.log(worksheet.name + ": " + worksheet.position); 
     console.log(worksheet2.name + ": " + worksheet2.position); 
    }); 
}).catch(function(error) { 
    OfficeHelpers.UI.notify(error); 
    OfficeHelpers.Utilities.log(error); 
}) 

あなたは新しいスクリプトラボでは、文字通り5回のクリック(https://aka.ms/getscriptlab)でのライブこのスニペットを試すことができます。スクリプトラボアドイン(無料)をインストールし、ナビゲーションメニューの「インポート」を選択し、次のGIST URL:https://gist.github.com/Zlatkovsky/c61594f1c86970e8dba91fe94b7ca4b6を使用するだけです。 more info about importing snippets to Script Labを参照してください。

0

は多分これが誰か

を助ける...ソリューション hereを発見しました
Excel.run(function (ctx) { 
    var worksheets = ctx.workbook.worksheets; 
    worksheets.load('items'); 
    return ctx.sync().then(function() { 
     for (var i = 0; i < worksheets.items.length; i++) { 
      var sheet_name = worksheets.items[i].name; 
      var sheet_position = worksheets.items[i].position; 
     } 
    }); 
関連する問題