Como adicionar algum valor em uma planilha do excel sem abri-lo e fechá-lo usando o objeto com na autochave?

0

Estou tentando usar esses códigos para adicionar alguns valores em uma célula sem abrir uma planilha do Excel e fechá-la -

f1::
Xl := ComObjCreate("Excel.Application")
Xl.Workbooks.Open("c:\Users\Manoj Aggarwal\Desktop\DATA.xlsx") 
Xl.Visible := False
Xl.Range("b1").Value:= "jaisiaramji"
Workbooks.Save()
Workbooks.Quit()
Workbooks:="" 
Return

Eles estão trabalhando, mas quando eu abro manualmente essa folha de excel, aparecem massagens que o DATA.xlsx já está aberto. A reabertura fará com que quaisquer alterações feitas sejam descartadas. Deseja reabrir o DATA.xlsx. Por favor me ajude e me sugira que modificação eu tenho que fazer em códigos. Obrigado.

    
por ramji 24.10.2015 / 12:50

2 respostas

0

Não sabe como obter do seu código algo que funcione, mas é necessário ter uma referência à pasta de trabalho e usar a Workbook.Close Method com o primeiro parâmetro definido como true para salvar o arquivo quando ele é fechado.

Veja o bloco central de código na postagem aqui para obter uma referência à planilha ativa e à pasta de trabalho, o que não é o que você está fazendo, mas pode fornecer algumas coisas para testar e testar. Eu estaria interessado em ver uma solução de trabalho se você chegar a um.

De interesse quando se trabalha com objetos do Excel é que você pode ter referências a três objetos diferentes (aplicativo, pasta de trabalho e planilha), que possuem seus próprios métodos respectivos para operar neles. Um pouco opaco no início, a menos que você leia a documentação do MSDN.

    
por 26.10.2015 / 06:40
0

Eu tentei as duas linhas abaixo e isso funcionou para mim:

xl.ActiveWorkbook.save (); salvar arquivo

Xl.ActiveWorkbook.close (); arquivo de fechamento

Portanto, não há mais nenhuma mensagem de erro "DATA.xlsx já está aberto. A reabertura fará com que quaisquer alterações feitas sejam descartadas. Deseja reabrir DATA.xlsx"

    
por 27.07.2016 / 05:53

Tags