Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valtino

[Resolvido] Erro com operação

Recommended Posts

Boa Noite

 

 

Estou utilizando esta função e estou com erro na nesta linha: xlCellTypeLastCell = $0000000B;

 

Alguém poderia me ajudar. Agradeço.

 

Erro: Invalid variant operation

 

 

 

 

Function XlsToStringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;

const

xlCellTypeLastCell = $0000000B;

 

var

XLApp, Sheet: OLEVariant;

RangeMatrix: Variant;

x, y, k, r: Integer;

 

begin

Result:=False;

//Cria Excel- OLE ObjectXLApp:=CreateOleObject('Excel.Application');

 

try

//Esconde Excel

XLApp.Visible:=False;

//Abre o Workbook

XLApp.Workbooks.Open(AXLSFile);

Sheet:=XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];

Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

//Pegar o número da última linha

x:=XLApp.ActiveCell.Row;

//Pegar o número da última coluna

y:=XLApp.ActiveCell.Column;

//Seta Stringgrid linha e coluna

AGrid.RowCount:=x;

AGrid.ColCount:=y;

//Associaca a variant WorkSheet com a variant do Delphi

RangeMatrix:=XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;

 

//Cria o loop para listar os registros no TStringGrid

k:=1;

 

repeat

for r:=1 to y do

AGrid.Cells[(r - 1),(k - 1)]:=RangeMatrix[K, R];

Inc(k,1);

until k > x;

 

RangeMatrix:=Unassigned;

finally

//Fecha o Excel

if not VarIsEmpty(XLApp) then

begin

XLApp.Quit;

XLAPP:=Unassigned;

Sheet:=Unassigned;

Result:=True;

end;

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdino, duas perguntas: qual versão do Delphi está usando para seus testes? O erro ocorre na compilação ou na execução? A segunda pergunta estou fazendo porque observei que no seu código você comentou a linha que cria o objeto OLE que vai manipular a planilha excel, neste linha:

 

//Cria Excel- OLE ObjectXLApp:=CreateOleObject('Excel.Application');

Deveria ser:

 

//Cria Excel- OLE Object
XLApp:=CreateOleObject('Excel.Application');

Outra coisa... é uma pergunta meio besta, mas que já vi acontecer... na máquina onde ocorre o erro, existe o excel instalado? Se não existir, não vai funcionar mesmo. E uma dica: crie um tópico novo e referencie o já resolvido para facilitar aos colegas responderem suas dúvidas.... tópicos marcados como já resolvidos normalmente são ignorados pelo pessoal.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valdino, duas perguntas: qual versão do Delphi está usando para seus testes? O erro ocorre na compilação ou na execução? A segunda pergunta estou fazendo porque observei que no seu código você comentou a linha que cria o objeto OLE que vai manipular a planilha excel, neste linha:

 

//Cria Excel- OLE ObjectXLApp:=CreateOleObject('Excel.Application');

Deveria ser:

 

//Cria Excel- OLE Object
XLApp:=CreateOleObject('Excel.Application');

Outra coisa... é uma pergunta meio besta, mas que já vi acontecer... na máquina onde ocorre o erro, existe o excel instalado? Se não existir, não vai funcionar mesmo. E uma dica: crie um tópico novo e referencie o já resolvido para facilitar aos colegas responderem suas dúvidas.... tópicos marcados como já resolvidos normalmente são ignorados pelo pessoal.

 

[]'s

 

 

 

MEU AMIGO, FIZ AS ALTERAÇÕES E CONSEGUI IMPORTAR A PLANILHA. MUITO OBRIGADO.

 

AGORA VOU PARA O SEGUNDO PASSO GRAVAR NO BANCO DE DADOS.MAIS OBRIGADO POR HORA...TCHAL..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo, estamos ai pra ajudar...

 

[]'s

 

 

Ps.: o que aconteceu com o post que eu tinha feito aqui antes que está no quote do Valtino? o.Ô

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o Valtino colocou uma dúvida em um tópico que ja estava resolvido. E pelo que percebi, criaram os novos tópicos enquanto eu estava corrigindo o problema.

 

Valtino, que bom que solucionou a sua dúvida. Só evite postar dúvidas em outros tópicos, principalmente se já estiverem resolvidos.

 

 

Abraços. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.