Excel inplace auf VB Form erstellen
Ich möchte auf einem Form über VB2008 eine Art Excel inplace erstellen (ähnlich SAP). Nun Habe ich schon etwas vorbereitet, jedoch gibt mir VB einen deklarierungsfehler bei den "ActiveWorkbook" und "ActiveSheet". Auch einen Operaatorenfehler bei "If Err() < 0 ". Ich dachte die Befehle sollten doch von dem Verweis der Excel Library übenommen werden. Weiss jemand dazu rat?
Public Class frmExcelInplaceWdb
Public oExl As New Microsoft.Office.Interop.Excel.Application
Private Sub OpenExlWS(ByVal sWSName As String, ByVal sTabName As String)
Dim A As Object
Dim Zeile As Long, Spalte As Integer
' Workbook öffnen
On Error Resume Next
oExl.Workbooks.Open(sWSName)
If Err() <= 0 Then
MsgBox("Exceldatei konnte nicht gefunden oder geöffnet werden.", _
vbExclamation, "Dateifehler")
Exit Sub
End If
On Error GoTo 0
' Tabelle selektieren:
ActiveWorkBook.Sheets(sTabName).Select()
' Zelle lesen
A = ActiveSheet.Cells(Zeile, Spalte).Value
' Zelle schreiben
ActiveSheet.Cells(Zeile, Spalte).Value = "Test"
' alles schließen
ActiveWorkbook.Close(SaveChanges:=True)
oExl.Quit()
oExl = Nothing
End Sub
End Class
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169648
Url: https://administrator.de/forum/excel-inplace-auf-vb-form-erstellen-169648.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
4 Kommentare
Neuester Kommentar
Moin,
Und, bitte, Benutze die CODE tags, siehe "Formatierungshilfe" beim Posten
lg,
Slainte
[...] VB2008 [...]
Du meinst sicher VB.NET bzw Visual Studio 2008[...] deklarierungsfehler bei den "ActiveWorkbook" und "ActiveSheet" [...]
Versuch doch mal ein oExl. davor zustellenIf Err() < 0
Das ist so auch falsch. Err() ist ein Array, das kannst Du nicht gegen einen Integer prüfen. Abgesehen davon erledigt mal das Errorhandling in VB.NET mit Try...Catch.Und, bitte, Benutze die CODE tags, siehe "Formatierungshilfe" beim Posten
lg,
Slainte
Eventuell hilft Dir das ein wenig weiter?
Gruß Dieter
Public Class frmExcelInplaceWdb
Public oExl As New Microsoft.Office.Interop.Excel.Application
Private Sub OpenExlWS(ByVal sWSName As String, ByVal sTabName As String)
Dim A As Variant, Wkb As Object, Wks As Object
Dim Zeile As Long, Spalte As Long
On Error Resume Next
Set Wkb = oExl.Workbooks.Open(sWSName)
Set Wks = Wkb.Sheets(sTabName)
'If oExl.Err.Number <> 0 Then MsgBox "Fehler": Exit Sub
'If Wks Is Nothing Then MsgBox "Fehler": Exit Sub
On Error GoTo 0
A = Wks.Cells(Zeile, Spalte).Value
Wks.Cells(Zeile, Spalte).Value = "Test"
Wkb.Close True
oExl.Quit
End Sub
End Class
Gruß Dieter