2016-09-30 3 views
0

l'aide d'Excel 2010, Visual Studio Express 2013.erreur Excel.Application express Visual Studio (Visual Basic)

J'ai ajouté la bibliothèque d'objets de référence dans Visual Studio pour Microsoft Excel 14,0

Imports Microsoft.Office.Core 
Public Class Form1 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

     Dim oXL As Excel.Application 
     Dim oWB As Excel.Workbook 
     Dim oSheet As Excel.Worksheet 
     Dim oRng As Excel.Range 

     ' Start Excel and get Application object. 
     oXL = CreateObject("Excel.Application") 
     oXL.Visible = True 
    End Sub 
End Class 

Cependant il me donne l'erreur suivante:

Type 'Excel.Application' is not defined.
Type 'Excel.Workbook' is not defined.
Type 'Excel.Worksheet' is not defined.
Type 'Excel.Range' is not defined.

Si j'utilise une bibliothèque de référence erronée pour la version Excel, s'il vous plaît montrer comment je peux aller sur l'ajout de l'objet propre libr ary à la liste.

Répondre

3

Vous avez importé le mauvais espace de noms.

changement

Imports Microsoft.Office.Core 

à

Imports Microsoft.Office.Interop 

Vous devrez ajouter une référence à Microsoft Excel 15.0 Object Library si vous avez pas déjà (remplacez 15,0 avec votre version)

Et au lieu de liaison tardive, vous pouvez utiliser les types corrects

Enfin, pour nettoyer correctement votre référence Excel, puisque c'est un objet COM, mettez ceci dans votre code où vous avez fini avec les objets (lors de la fermeture du formulaire par exemple). Faites ceci pour chaque objet COM que vous créez.

System.Runtime.InteropServices.Marshal.ReleaseComObject(oRng) 
System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) 
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWB) 
System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL) 
0

Compris. Le code précédent était de https://support.microsoft.com/en-us/kb/301982. Cependant, lorsque j'ai modifié le code de la manière suivante, les erreurs ont disparu.

Imports Microsoft.Office.Core 

Public Class Form1 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Dim oXl As Object 
    Dim oWB As Object 
    'Dim oXL As Excel.Application 
    'Dim oWB As Excel.Workbook 
    'Dim oSheet As Excel.Worksheet 
    'Dim oRng As Excel.Range 

    ' Start Excel and get Application object. 
    oXL = CreateObject("Excel.Application") 
    oXL.Visible = True 
End Sub 
End Class 
+1

Ceci utilise une liaison tardive. Puisque oXl est un objet, vous pouvez mettre n'importe quoi sur cette ligne 'oXL.Visible = True', par exemple' oXL.Visib = True', et vous n'aurez aucune erreur de compilation. Mais il déclenchera une exception lors de l'exécution. Pour cette raison, les gens mettent Option Strict On en tête de leur code pour signaler ce type de problème potentiel. – djv