めったに尋ねられず、良い回答が見られないという質問を受け取りました。
VB.NET の非常に単純なコード:
Imports System.Data
Imports System.IO
Imports System.Runtime.InteropServices
Dim anExcelApplicationClass As Microsoft.Office.Interop.Excel.Application
anExcelApplicationClass = New Microsoft.Office.Interop.Excel.Application
anExcelApplicationClass.Visible = False
anExcelApplicationClass.UserControl = False
anExcelApplicationClass.DisplayAlerts = False
anExcelApplicationClass.ScreenUpdating = False
Dim devWorkbooks As Workbooks
Dim devWorkbook As Workbook
Dim masterTempWorksheet As Worksheet
Dim tempWorksheet As Worksheet
devWorkbooks = anExcelApplicationClass.Workbooks
devWorkbook = devWorkbooks.Open(DevFilePath, 0, False, 5, "", "", False, XlPlatform.xlWindows, "", True, False, 0, True, False, False)
Dim tempCounter As Integer = 0
While tempCounter < 500
tempCounter = tempCounter + 1
masterTempWorksheet.Copy(Type.Missing, masterTempWorksheet)
tempWorksheet = CType(devWorkbook.Sheets(3), Worksheet)
tempWorksheet.Name = tempCounter.ToString()
End While
私にとって、255回の反復の後、コードは「Exception de HRESULT : 0x800A03EC」というかなり役に立たないエラーで失敗します。
調査の結果、これがワークシート数の制限であると言う人もいましたが、実際の制限はなく、実際の制限は単にシステムに基づいていると示唆する人もいます。
注: ここで提案されているように、保存して閉じてから、いくつかの反復後にワークシートを再度開いてみました: http://support.microsoft.com/kb/210684/en-us . 問題は解決しませんでした。
誰でもこの問題を解決する方法について何か考えがありますか?