Тема: Открыть книгу Excel

Народ подскажите пожалуйста. Как мне открыть из AutoCAD через GetOpenFileName или еще как-нибудь, существующую книгу Excel, сделать в ней необходимые изменения (например в листе3), сохранить и закрыть ее.

Re: Открыть книгу Excel

только ссылку на объект дай в начале

dim xlApp As Excel.Application
    dim xlBook As Excel.Workbook
    dim xlSheet As Excel.Worksheet

        Set xlApp = New Excel.Application
        Set xlBook = xlApp.Workbooks.Open(здесь путь, , False)
        Set xlSheet = xlApp.Sheets.Item(3)'типа третий лист открыт
        xlApp.Visible = False' открыть в фоновом режиме

Re: Открыть книгу Excel

А путь можно задать через функцию GetOpenFileName?
Set xlApp = Excel.Application
file1=Excel.Application.GetOpenFileName(...)
Set xlBook = xlApp.Workbooks.Open(file1)
Set xlSheet = xlApp.Sheets.Item(3)'
'операторы
xlBook.Save
xlBook.Close
при такой конструкции он сохраняет копию книги, а не изменяет  существующую. Что неправильно?

Re: Открыть книгу Excel

Наверно в этом случае лучше сохранять так

xlBook.SaveAs(ThisWorkBook.FullName) 

~Close
~Quit

~'J'~

Re: Открыть книгу Excel

Нет, ошибку генерирует. А может, кто сайт с примером посоветует?

Re: Открыть книгу Excel

У меня работает

Option Explicit

Sub demo()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlRange As Excel.Range
Dim file1 As String

On Error GoTo Error_Control
Set xlApp = Excel.Application
xlApp.Visible = True
xlApp.Volatile
xlApp.ScreenUpdating = False
xlApp.DisplayAlerts = False
'
file1 = Excel.Application.GetOpenFilename _
(FileFilter:="Excel Files (*.xls),*.xls", _
Title:="Select Excel files for writing", MultiSelect:=False)
'
Set xlBook = xlApp.Workbooks.Open(file1)
Set xlSheet = xlApp.Sheets.Item(2)
Set xlRange = xlSheet.Cells(1, 1)
xlRange.Value2 = "How are you?"
xlSheet.Columns.AutoFit
xlApp.ScreenUpdating = True

xlBook.SaveAs file1
xlBook.Close

xlApp.DisplayAlerts = True

xlApp.Quit

DoEvents

Exit_Here:

Set xlRange = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

Exit Sub

Error_Control:

  MsgBox "Error number: " & Err.Number & vbNewLine & _
      "Description: " & Err.Description, vbOKOnly
      
  Resume Exit_Here

End Sub

~'J'~