2016-09-30 3 views
0

Использование Excel 2010, Visual Studio Express 2013.Excel.Application ошибка в Visual Studio Express (Visual Basic)

Я добавил библиотеку ссылку на объект в Visual Studio для 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 

Однако он дает мне следующую ошибку:

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

Если я использую неправильную справочную библиотеку для версии Excel, пожалуйста, показать, как я могу идти о добавлении правильного объекта LiBr в списке.

ответ

3

Вы импортировали неправильное пространство имен.

Изменить

Imports Microsoft.Office.Core 

в

Imports Microsoft.Office.Interop 

Вам нужно будет добавить ссылку на Microsoft Excel библиотеки 15,0 Объект, если вы уже не имеете (замените 15.0 с версии)

И вместо позднего связывания вы можете использовать правильные типы

Наконец, чтобы правильно очистить ссылку Excel, так как это COM-объект, поместите это в свой код, где вы закончили с объектами (например, при закрытии формы). Сделайте это для каждого создаваемого COM-объекта.

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

Понял. Предыдущий код был от https://support.microsoft.com/en-us/kb/301982. Однако, когда я редактировал код следующим образом, ошибки ушли.

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

Это использование позднего связывания. Поскольку oXl является объектом, вы можете поместить что-нибудь в эту строку 'oXL.Visible = True', например' oXL.Visib = True', и у вас не будет никакой ошибки компиляции. Но это вызовет исключение во время выполнения. По этой причине люди помещают 'Option Strict On' в начало своего кода, чтобы указать на этот тип потенциальной проблемы. – djv

Смежные вопросы