Подтвердить что ты не робот

Как обращаться к объектам Excel в Access VBA?

Какие декларации я должен сделать, чтобы иметь возможность использовать объекты и константы Excel из моего Access 2007 VBA script?

Dim wb As Workbook

или

Set objExcelApp = New Excel.Application

или

.Borders(xlEdgeBottom)

Спасибо

4b9b3361

Ответ 1

Сначала вам нужно установить ссылку (Меню: Инструменты- > Ссылки) в библиотеку объектов Microsoft Excel, затем вы можете получить доступ ко всем объектам Excel.

После того, как вы добавили ссылку, у вас есть полный доступ ко всем объектам Excel. Вам нужно добавить Excel перед всем, например:

Dim xlApp as Excel.Application

Предположим, вы добавили объект вашей книги Excel в свою форму и назвали его xLObject.

Вот как вы получаете доступ к листу этого объекта и изменяете диапазон

Dim sheet As Excel.Worksheet
Set sheet = xlObject.Object.Sheets(1)
sheet.Range("A1") = "Hello World"

(Я скопировал это из моего ответа на этот вопрос)

Другой способ использования Excel в Access - запустить Excel через модуль доступа (способ, которым shahkalpesh описал это в своем ответе)

Ответ 2

Я отказываюсь от обоих ответов. Не создавайте ссылку вообще, но используйте последнее связывание:

  Dim objExcelApp As Object
  Dim wb As Object

  Sub Initialize()
    Set objExcelApp = CreateObject("Excel.Application")
  End Sub

  Sub ProcessDataWorkbook()
     Set wb = objExcelApp.Workbooks.Open("path to my workbook")
     Dim ws As Object
     Set ws = wb.Sheets(1)

     ws.Cells(1, 1).Value = "Hello"
     ws.Cells(1, 2).Value = "World"

     'Close the workbook
     wb.Close
     Set wb = Nothing
  End Sub

Вы заметите, что единственная разница в приведенном выше коде состоит в том, что все переменные объявлены как объекты, и вы создаете экземпляр Excel с помощью CreateObject().

Этот код будет работать независимо от того, какая версия Excel установлена, а использование ссылки может привести к поломке вашего кода, если установлена ​​другая версия Excel, или если она установлена ​​в другом месте.

Кроме того, обработка ошибок может быть добавлена ​​в код выше, так что если первоначальное создание экземпляра Excel завершится неудачно (скажем, потому что Excel не установлен или не зарегистрирован должным образом), ваш код может быть продолжен. С помощью набора ссылок ваше приложение Access будет работать, если Excel не установлен.

Ответ 3

Внутри модуля

Option Explicit
dim objExcelApp as Excel.Application
dim wb as Excel.Workbook

sub Initialize()
   set objExcelApp = new Excel.Application
end sub

sub ProcessDataWorkbook()
    dim ws as Worksheet
    set wb = objExcelApp.Workbooks.Open("path to my workbook")
    set ws = wb.Sheets(1)

    ws.Cells(1,1).Value = "Hello"
    ws.Cells(1,2).Value = "World"

    'Close the workbook
    wb.Close
    set wb = Nothing
end sub

sub Release()
   set objExcelApp = Nothing
end sub