2012-03-29 11 views
0

matlab内からExcelブックにシートを追加するにはどうすればよいですか?MATLAB内からExcelブックを3枚以上追加する方法

私はそうのようなワークブック(コードに基づいて、私はこのフォーラムでは他の誰かのポストから得た)を設定:

%# create Excel COM Server 
    Excel = actxserver('Excel.Application'); 
    Excel.Visible = true; 
    %# create new XLS file 
    wb = Excel.Workbooks.Add(); 
    wsheet=1; 
    wb.Sheets.Item(wsheet).Activate(); 

大丈夫です。そして、後に、私は非常に多くのループの後に新しいシートを開き、ループ内:

... 
    if loop==sheetlimit, 
     wsheet=wsheet+1; 
     wb.Sheets.Item(wsheet).Activate(); 
    end 

これは、シート3まで動作しますが、wsheet = 4が、私はこのエラーメッセージを取得するとき:

??? Invoke Error, Dispatch Exception: Invalid index. 

    Error in ==> filename at 97 
     wb.Sheets.Item(wsheet).Activate(); 

は、いずれかを感謝助けて。ありがとう。

答えて

3

私はMatlabを知らないが、wb.Sheets.Item(wsheet).Activate();が実際に新しいワークシートを追加していると私は驚くだろう。ほとんどの場合、wbワークブックで各ワークシートを選択/アクティブ化しており、デフォルトのExcelテンプレートには3つのワークシートがあります。なぜそれが3つ以上になるとエラーになるのですか?

新しいExcelワークシートを追加することができます。この よう

何か:

wb.sheets.Add(); 
+0

をはい、これは動作しますあなたは、このようなインターフェイスの利用可能な方法を照会することができます。このようなインタフェースの利用可能なメソッドをquaeryすることができます。 'methods(wb.sheets)'には以下のものがあります: 'クラスのメソッドInterface.000208D7_0000_0000_C000_000000000046:FillAcrossSheetsを追加するPrintOut addproperty events loadobj setコピーアイテムPrintPreview delete get release削除移動を選択するdeleteeproperty invoke saveobj' – Max

1

Aargh - コメントは完全に台無しに書式 - 私は新しい答えとして、それを再入力します

はいwb.sheets.Add();は動作します。与え

methods(wb.sheets)

Methods for class Interface.000208D7_0000_0000_C000_000000000046: 

Add FillAcrossSheets PrintOut addproperty events loadobj set 
Copy Item PrintPreview delete get release 
Delete Move Select deleteproperty invoke saveobj 
関連する問題