Public Class fwExcel Implements IDisposable Public oApp As New Excel.Application Public oWBs As Excel.Workbooks Public oWB As Excel.Workbook Public Selection As Excel.Range Public lTest As Boolean Public originalCulture As System.Globalization.CultureInfo Dim thisThread As System.Threading.Thread Dim lQuit As Boolean = True Dim lDisposed As Boolean = False Public cPrinter As String Public nCopies As Integer Public cXlsRoot As String Sub New() Me.thisThread = System.Threading.Thread.CurrentThread Me.originalCulture = thisThread.CurrentCulture Me.thisThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") Me.oWBs = Me.oApp.Workbooks Me.oApp.DisplayAlerts = False End Sub Sub Dispose() Implements IDisposable.Dispose If Me.lDisposed Then Exit Sub If lQuit Then Me.oApp.Quit() Me.releaseObject(Me.oWB) Me.releaseObject(Me.oWBs) Me.releaseObject(Me.oApp) Me.thisThread.CurrentCulture = Me.originalCulture Me.lDisposed = True End Sub Protected Overrides Sub finalize() Me.Dispose() End Sub Public Sub releaseObject(ByVal o As Object) If o Is Nothing Then Exit Sub Runtime.InteropServices.Marshal.FinalReleaseComObject(o) o = Nothing End Sub>Nothing in here http://msdn.microsoft.com/en-US/library/ms244737(v=VS.80).aspx about a constructor, but it may show you what's wrong
>>Imports Microsoft.Office.Interop >>Public Class fwExcel >> Implements IDisposable >>>>
>> Public Class fwWorksheet >>>>
>> Public Sub New(oXl As fwExcel) >> Me.oXlParent = oXl >> Me.oXl = oXl.oApp >> End Sub >>>>