Excel VBA Contrôle de l'intranet local IE
Donc, je suis en utilisant Excel VBA code de cliquer sur un bouton sur notre site web, faites-moi confiance, je sais que ce n'est pas la meilleure des choses à faire, mais c'est le moins répréhensible option disponible pour moi à ce moment.
Donc, que le choix de la route, voici mon problème, je peux l'aide de ce code, charger avec succès imdb.com, google, etc. Mais lorsque je charge notre site local, je perds le contrôle de l'ie objet, je ne peux pas vérifier readyState, je ne peux pas Cesser de fumer. Voici l'erreur que j'obtiens.
Erreur d'exécution '-2147023179 (800706b5)':
Erreur Automation
L'interface est inconnue
Chaque tellement souvent au lieu de cela, je reçois ce message:
Erreur d'exécution '-2147417848 (80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients.
Cliquant Debug indique l'ie.readyState, j'ai aussi essayé de commenter que, et puis il pointe à ie.Quittez
Sub dothestuff()
Dim ie As InternetExplorer
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://www.google.com/"
anerror = webload(ie)
ie.Quit
Set ie = Nothing
End Sub
Function webload(ie)
Do Until ie.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
End Function
source d'informationauteur Varyl
Vous devez vous connecter pour publier un commentaire.
Voici une solution rapide et facile pour cette question:
Au lieu de:
Utilisation:
Aucun besoin d'ajuster les paramètres d'internet explorer
Voici ce qui se passe. Lorsque votre navigateur interne "saute" vers une autre zone de sécurité - de dire une adresse locale à un inTRAnet d'adresse ou à une adresse inTERnet EXPLORER se ferme/les gouttes de l'actuel processus d'IE et ouvre une autre avec un renforcement de la sécurité. L'ancien et le nouveau IE processus sont IE processus enfant pour le parent IE tâche afin de ne pas la voir arriver, soit en regardant le navigateur ou en regardant les processus dans le Gestionnaire des Tâches. Si vous utilisez l'Explorateur de Processus (gratuit à partir de Microsoft), vous pouvez voir cela se produire.
Ce que vous devez faire dans ce type d'environnement est l'utilisation Anup Upadhyay la solution ci-dessus. Son extrait de code ressemble à toutes les IE tâches (parent et enfant ne fait pas de différence) et estime que le nouveau IE processus qui pointe sur l'adresse web que le processus d'origine a été donné. Tant que vous n'avez pas plusieurs navigateurs ouverts à la même adresse, il va trouver le nouveau processus de manière fiable et continuez comme vous l'attendez.
Remarque: Vous pouvez également utiliser la InternetExplorerMedium objet par opposition à la InternetExplorer objet. Il est également préférable à "holding on" pour une session.
Voici ma version qui est presque la même chose que l'Anup.
Références pour MS Office VBA:
Microsoft Internet Controls
Microsoft Shell Contrôles et Automatisation
n
Nous avons eu ce problème à l'aide de IE9. Il se pose en raison de paramètres de sécurité. Il s'agit d'un paramètre appelé "Activer le Mode Protégé" sur la "Sécurité" de l'onglet "Options Internet" de la boîte de dialogue (outils...options internet). Chaque "zone" peut avoir un réglage différent pour "activer le mode protégé" Nous décoché "activer le mode protégé" et cela a résolu notre problème. Je pense que ce qui se passe est que lorsque le commutateur à une zone qui est en mode protégé, c'est à dire démarre un nouveau processus pour gérer le trafic dans cette zone (peut-être tuer l'ancien processus). Lorsque cela se produit votre IE variable d'objet dans VBA est déconnecté à partir d'Internet Explorer.
Essayez celui-ci:
Bien, vient de trouver une solution, a décidé, en désespoir de cause pour essayer de charger 127.0.0.1 au lieu de localhost, bien sûr, pas de problèmes, donc résolu l'adresse ip du serveur intranet local, et maintenant je suis bon pour aller.
Je ne comprends pas vraiment pourquoi, mais ce qui a résolu mon problème.
"Nous sommes d'erreur ici , j'ai trouvé un petit difficile de solutions de rechange pour ce comme ci-dessous
"Prendre de référence pour Microsoft Shell de Commandes Et automatismes
"Utilisation de code ci-dessous pour réaffecter IE objet pour la perte de problème de connexion
Pour moi, la suite travaillé:
Ps. J'ai testé ces étapes sur IE 8 navigateur.
Vous avez peut-être un problème avec la liaison? C'est une étrange erreur à obtenir pour cette.
Essayer ce code (adapté de http://www.excely.com/excel-vba/ie-automation.shtml). Espérons que cela aide:
Je suis d'avoir exactement le même problème à travailler avec un site web qui est à l'intérieur de notre site intranet de l'entreprise et est également inclus dans mes sites de confiance. La désactivation du mode protégé me permet de vérifier ReadyState, mais seulement si je désactive pour la zone internet en plus de l'intranet et des sites de confiance.
Pourquoi l'activation du mode protégé pour la zone internet cause de l'automatisation d'erreur lors de la vérification ReadyState sur un site de confiance? Est-il un moyen de contourner cela sans désactiver le mode protégé pour la zone internet?
Une autre solution..
Noter que l'utilisation de InternetExplorerMedium (voir les autres réponses) généralement tout ce dont vous avez besoin, pour votre information, vous pouvez également utiliser la propriété Url de l'obj.LocationURL au lieu de la fenêtre de nom qui serait plus précis. Voir les autres réponses.