raziel
Goto Top

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

Content-Key: 169648

Url: https://administrator.de/contentid/169648

Ausgedruckt am: 19.03.2024 um 06:03 Uhr

Mitglied: SlainteMhath
SlainteMhath 13.07.2011 um 13:25:16 Uhr
Goto Top
Moin,

[...] VB2008 [...]
Du meinst sicher VB.NET bzw Visual Studio 2008

[...] deklarierungsfehler bei den "ActiveWorkbook" und "ActiveSheet" [...]
Versuch doch mal ein oExl. davor zustellen

If 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
Mitglied: 76109
76109 13.07.2011 um 13:42:34 Uhr
Goto Top
Eventuell hilft Dir das ein wenig weiter?
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
Mitglied: mathe172
mathe172 13.07.2011 um 13:50:37 Uhr
Goto Top
Hallo,

wenn ich dich richtig verstehe, hast du einen Verweis in den Projekteigenschaften gemacht, oder?
Hast du den Namensraum aber Importiert (direkt unter den Verweises oder am Anfang einer Code-Datei)

MfG,
Mathe172
Mitglied: raziel
raziel 13.07.2011 um 15:40:12 Uhr
Goto Top
@Didi: Hallo DidiDanke für dieses Script, es ist fehlerlos. Leider kann ich daraus nicht ablesen wie ich jetzt ein bestimmtes File öffne.
@mathe: Verweis zu was? Dito Namespace ;)

Gruss
raziel