Détecter si le classeur Excel est déjà ouvert
En VBA, j'ai ouvert un fichier MS Excel nommé "myWork.XL" de la programmation.
Maintenant, je voudrais un code qui peut me dire à propos de son statut de savoir si c'est ouvert ou pas. I. e. quelque chose comme IsWorkBookOpened("myWork.XL)
?
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Pour mes applications, en général, je veux travailler avec un classeur plutôt que de simplement déterminer si elle est ouverte. Pour ce cas, je préfère ignorer la fonction Booléenne et il suffit de retourner le classeur.
Workbooks(sFile)
On Error Resume Next
dans le code ou que vous avez d'arrêt sur Toutes les Erreurs indiquées sous Outils - Options dans le VBE.On Error Resume Next
(parce quewbReturn
était pasNothing
, mais contenait une erreur) et écrire véritable erreur de manipulation. Voir: pastebin.com/u1LLgPa1Si son ouverture, il sera dans la collection de Classeurs:
Je voudrais aller avec ceci:
comme sFileName vous devez fournir un chemin direct vers le fichier, par exemple:
Que si vous voulez vérifier sans créer une autre instance d'Excel?
Par exemple, j'ai une macro Word (ce qui est exécutée à plusieurs reprises) qui a besoin d'extraire des données à partir d'une feuille de calcul Excel. Si la feuille de calcul est déjà ouvert dans une instance d'Excel, je préfère ne pas créer une nouvelle instance.
J'ai trouvé une excellente réponse ici ce que j'ai construit sur:
http://www.dbforums.com/microsoft-access/1022678-how-check-wether-excel-workbook-already-open-not-search-value.html
Grâce à MikeTheBike et kirankarnati
Celui-ci est un peu plus facile à comprendre:
Checkout cette fonction
WB.Path & "\" & WBName
estWB.FullName