2010-12-08 4 views
0

Chaque fois que j'utilise ce code,ASP Excel.Application objExcel.Range ("range") le gel

Set oExcel = CreateObject("Excel.Application") 
Set oWorkbook = oExcel.Workbooks.Open(sPathToTemplate) 

oExcel.Range("shipping_name").Value = strShippingName 

oWorkbook.Close() 
Set oWorkbook = Nothing 
Set oExcel = Nothing 

Le processus Excel sur le serveur est le gel, et les cellules ne sont jamais modifiés. Ou du moins c'est ce que ça a l'air.

Le classeur s'ouvre très bien, et si je n'essaie pas de modifier le contenu d'une cellule, le code se termine sans erreur. Mais lorsque j'ajoute la modification et actualise la page, le processus EXCEL.exe apparaît dans le gestionnaire de tâches et le script cesse de répondre. Je dois tuer le processus manuellement pour qu'il expire.

Tout ce que je peux faire pour que le code fonctionne?

+0

Même chose si j'utilise oExcel.Range (« shipping_name ») – Dexter

+0

Je suis surpris que vous ne recevez pas une erreur d'analyse à cause des parenthèses dans votre appel de sous-programme 'oWorkbook.Close()' –

+0

Je pense que oWorkbook.Close() renvoie True ou quelque chose, alors c'est peut-être pourquoi. Je sais oExcel.Open (fichier) retourne le classeur, donc je me demande ce que .Close() retourne. Quoi qu'il en soit, la parenthèse n'est-elle pas seulement un problème entre les Fonctions et les Sous-Routines, et pas les Méthodes? – Dexter

Répondre

1

Ceci est probablement dû au fait que vous n'enregistrez pas le classeur. Sur un bureau, Excel doit générer un message "Voulez-vous enregistrer les modifications?" dialogue.

Essayez d'ajouter

oWorkbook.saved = true 

avant de fermer le classeur. Ceci indiquera à Excel ne pas se soucier si le classeur a changé (mais ne sauvera pas le document). Si votre asp fonctionne, c'est la boîte de dialogue de sauvegarde qui pose problème. Pour enregistrer réellement les modifications, vous aurez besoin d'appeler un des

oWorkbook.Save 
oWorkbook.SaveAs 

méthodes

+0

Mon problème est que j'ai prévu d'utiliser ce classeur comme un modèle et de l'enregistrer dans un fichier différent, mais je ne suis pas arrivé à cette partie. Serais-je capable de faire un SaveAs avec le même résultat? – Dexter

+0

Nevermind, on dirait que ça a fonctionné. Merci! – Dexter

+0

Je devrais le penser, tant que votre asp a un accès en écriture à votre serveur web, il devrait fonctionner –