2010-08-23 7 views
1

Comment contrôler avec plusieurs instances de python d'Excel. Ce n'est pas en lecture/écriture, mais plus de macros en cours d'exécution sur différents classeurs.Python pour contrôler les macros dans les instances multiples d'Excel

Ex: Excel.exe exécutant Book1.xls. a mac1 Excel.exe exécutant Book2.xls. a mac2.

j'ai eu un cas au travail, cette première instance, qui utilisent 2003. je ne pouvais pas comprendre l'autre instance qui est 2007.

Si 2 peut être fait, peut 3 ou 4, ou est une limite. J'ai pensé à memcache en lançant les différentes instances, mais vraiment pas sûr, si c'est faisable.

TIA

travaillant sur Appliquer ceci: Using Python to program MS Office macros?

+0

Ok, essayé de comprendre cela, besoin de plus d'aide. Créé une macro d'horodatage dans pyVBA.xls fonctionne sur la première instance, CLosed, ouvert en deuxième instance, n'a pas exécuté voir la boîte de dialogue en première instance. ici le code ## Pyhton 2.6 de Dispatch d'importation win32com.client #Comme comDispatch def Doït(): = Dispatch xl ('Excel.Application') # xl.Visible = 1 #xl. Workbooks.Open ("C: \ pyVBA.xls", True, True) xl.Run ("C: \ pyVBA.xls! Macro1") – Merlin

Répondre

1

Malheureusement, vous ne pouvez pas contrôler quelle instance vous revenez quand saisir les choses de la ROT (en cours d'exécution table d'objets.) Seule la première instance d'une application enregistrera lui-même.

http://support.microsoft.com/kb/238975

Cependant, chaque document est enregistré dans le ROT donc dans votre cas, vous pourriez être en mesure de trouver l'instance en droit à la recherche de documents.

-Oisin

+0

Pouvez-vous me donner un exemple pour l'exemple ci-dessus? merci ... pour une réponse rapide – Merlin

+0

des pensées utiles? – Merlin

+0

voici quelques C# pour parcourir le contenu de la ROT: http://www.vbusers.com/codecsharp/codeget.asp?ThreadID=69&PostID=1 - lancer deux instances d'Excel, chacune avec un XLS différent chargé. Regardez dans la ROT pour les instances d'excel.document (devrait être deux), pas excel.application (il n'y en aura qu'une) – x0n

Questions connexes