ACESSANDO O EXCEL VIA VB 6
Tenho uma aplicação que utiliza como base de dados o Access. Porém, quando quero fazer um relatório dos produtos vendidos precisso exportar para o Excel e isto está gerando uma dor de cabeça. O Código que utilizo é o seguinte:
Ele abre o Excel e exibe relatório, porém, se eu precisar gerar outro relatório utilizando este código ela dá a seguinte mensagem de erro:
Erro número 1004
Error en el método [ô]Range[ô] del objeto [ô]_Global[ô]
as variáveis Código, Descrição e Quantidade nem sempre recebem valores tirados da base de dados.
Set EApp = CreateObject([Ô]excel.application[Ô])
Set EwkB = EApp.Workbooks.Add
Set EwkS = EwkB.Sheets(1)
EApp.Application.Visible = True
Range(ak & 1).FormulaR1C1 = Código
Range(b & 1).FormulaR1C1 = Descrição
Range(c & 1).FormulaR1C1 = Quantidade
Ele abre o Excel e exibe relatório, porém, se eu precisar gerar outro relatório utilizando este código ela dá a seguinte mensagem de erro:
Erro número 1004
Error en el método [ô]Range[ô] del objeto [ô]_Global[ô]
as variáveis Código, Descrição e Quantidade nem sempre recebem valores tirados da base de dados.
Acho que vc está instanciando os objetos e não está destruindo completamente.
Como faço isso?
Depois que vc cria uma instancia do excel, workbook e worksheet, vc precisa destruir essas instâncias.
o codigo está em vb.net, mas é fácil entender
veja um trecho:
o codigo está em vb.net, mas é fácil entender
veja um trecho:
Dim ExcelApp As Excel.Application
Dim ExcelWb As Excel.Workbook
Dim ExcelWs As Excel.Worksheet
ExcelApp = New Excel.Application
ExcelWb = ExcelApp.Workbooks.Add
ExcelWs = ExcelWb.Worksheets(1)
[ô]preenche e salva a planilha
[ô]fecha a instancia do excel ----------------------------------------------------------------
ExcelWb.Close()
ExcelApp.Quit()
[ô]destroi as variaveis do excel ----------------------------------------------------------------
ExcelApp = Nothing
ExcelWb = Nothing
ExcelWs = Nothing
Fiz o que você sugeriu e continua dando a mesma mensagem de erro. Vamos fazer o seguinte, utilizando este código que vocÊ sugeriu, como faço para preencher a planilha do Excel?
Humm... agora que prestei atenção no seu código... o seu problema realmente é o preenchimento das células.
lá vai:
lá vai:
Dim ExcelApp As Excel.Application
Dim ExcelWb As Excel.Workbook
Dim ExcelWs As Excel.Worksheet
ExcelApp = New Excel.Application
ExcelWb = ExcelApp.Workbooks.Add
ExcelWs = ExcelWb.Worksheets(1)
[ô]preenche
ExcelWs.Cells(1, 1).Value = [Ô]Linha1 Coluna1[Ô]
ExcelWs.Cells(1, 2).Value = [Ô]Linha1 Coluna2[Ô]
ExcelWs.Cells(2, 1).Value = [Ô]Linha2 Coluna1[Ô]
ExcelWs.Cells(2, 2).Value = [Ô]Linha2 Coluna2[Ô]
[ô]salva a planilha
ExcelWb.SaveAs([Ô]c:\exemplo.xls[Ô])
[ô]fecha a instancia do excel ----------------------------------------------------------------
ExcelWb.Close()
ExcelApp.Quit()
[ô]destroi as variaveis do excel ----------------------------------------------------------------
ExcelApp = Nothing
ExcelWb = Nothing
ExcelWs = Nothing
Marcosling, valeu por toda a atenção!!!! O código funcionou direitinho ao trocar o métodos Range por ExcelWs.Cells.
Tópico encerrado , respostas não são mais permitidas