[]
É comum encontrarmos problemas com referência em automação com aplicativos Office, quando referenciamos uma biblioteca, por exemplo XP e temos instalada a versão 2003, então certamente ocorrerá um erro, de biblioteca ausente na referência.
Para evitar o erro, crie uma classe que faça este trabalho setando um objeto, sem usar a referência.
Em um novo módulo Classe cole o código abaixo e salve com o nome de "ExcelReporter"
=======================================================================
Option Explicit
Option Compare Database
Public Function OpenWorkbook(FileName As String) As Object
On Error GoTo OpenWorkbook_Err
Dim ExcelApp As Object
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = False
'Abre o arquivo no Excel
Dim wb As Object
Set wb = ExcelApp.Workbooks.Open(FileName)
Set OpenWorkbook = wb
Exit Function
OpenWorkbook_Err:
Err.Raise vbObjectError + 100, _
"Project1.ExcelReporter.OpenWorkbook", _
"ExcelReporter component failure"
End Function
Public Sub CloseWorkbook(wb As Object)
On Error GoTo CloseWorkbook_Err
Dim app As Object
Set app = wb.Application
app.DisplayAlerts = False
wb.Save
wb.Close
app.Quit
Exit Sub
CloseWorkbook_Err:
Err.Raise vbObjectError + 100, _ "Project1.ExcelReporter.CloseWorkbook", _
"ExcelReporter component failure"
Resume Next
End Sub
Para utilizar a Classe
Dim ex As ExcelReporter
Set ex = New ExcelReporter
Dim File AS String
File = "C:\Planilha.XLS"
'Para abrir
Dim wb As Object
Set wb = ex.OpenWorkbook(strFile)
Para Fechar
ex.CloseWorkbook wb
Pronto.... A forma mais facil de referenciar um objeto no Excel.
Espero que gostem
terça-feira, 7 de agosto de 2007
Assinar:
Postagens (Atom)