“Nouveau” Excel.Application vs Excel.Application
Je suis à la recherche de précisions sur l'impact de la "Nouvelle" sur les objets et le script.
Ma compréhension est que si j'ai besoin d'effectuer des actions sur un document excel et l'application est fermée, alors que je devrais utiliser Excel Nouveau.Application.
Si je garde cette application active (par l'intermédiaire d'un objet tel qu'un Classeur par exemple) et plus tard dans le script que j'ai décider d'ouvrir un autre classeur, dois-je toujours utiliser Excel Nouveau.Application ou serait-il mieux d'utiliser Excel.Application alors?
Mon inquiétude réside dans le fait que je vais écrire un long script qui permettra d'effectuer des actions sur au moins 5 Classeurs. Je vais avoir à passer d'un Classeur à un autre, puis de revenir à l'ancienne...
Si à chaque fois que le script crée un Nouveau Excel.L'Application, j'ai peut-être beaucoup d'entre eux en cours d'exécution et je suis craignant que cette pagaille serait de générer des problèmes.
Est-il plus approprié d'écrire quelque chose comme:
Dim NxlApp as New Excel.Application
Dim xlApp as Excel.Application
NxlApp.Workbooks.Open "C:\Users\...\WorkbookA.xlsx"
NxlApp.Visible = True
'Perform actions on WorkbookA (keep it open)
Set ExcelApp = GetObject("", "Excel.Application.14")
xlApp.Workbooks.Open "C:\Users\...\WorkbookB.xlsx"
xlApp.Visible = True
'Perform actions on WorkbookB (keep it open)
'Go back to WorkbookA (using the xlApp variable this time)
xlApp.Workbook("A.xlsx")...
msdn.microsoft.com/en-us/library/7zc73115(v=vs. 90).aspx
L'OP a un bon point... j'ai toujours remarqué que Microsoft Scripting Runtime exige un Nouveau mot-clé pour FileScriptingObject mais pas pour d'autres bibliothèques. Pourquoi certains ont besoin de Nouvelles et d'autres ne le sont pas?
OriginalL'auteur ProtoVB | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
L'application excel peut avoir plusieurs classeurs ouverts à la fois de sorte que vous n'avez pas besoin d'instancier un nouveau. Si vous avez de l'intérieur de excel vous ne devriez pas besoin de faire référence à l'application pour ouvrir les classeurs. Vous souhaitez peut-être créer plusieurs classeur cas par exemple
Ce qui permettra d'ouvrir les classeurs et donner une référence de sorte que vous pouvez les manipuler à l'aide de votre code.
OriginalL'auteur Graham Anderson
Bonne question, la réponse courte est que vous pouvez ouvrir 5 classeurs dans un objet d'Application.
Si vous êtes dans excel (sinon voir ci-dessous), alors vous avez déjà un fichier Excel.Application. Vous pouvez ensuite définir chaque classeur à un autre objet de référence ou par leur nom:
Si vous êtes à l'extérieur Excel (comme dans l'Accès), alors vous voudrez peut-être créer un fichier Excel.Objet de l'Application, voici quelques conseils:
a le même effet que:
Ne définissent pas (dim) à l'intérieur d'une boucle, mais vous pouvez instancier (Set) le même objet autant de fois que vous le souhaitez. Si vous utilisez un objet global (qui n'est pas recommandé, mais parfois pratique) à l'intérieur d'un contrôle (bouton, etc), vous pouvez utiliser quelque chose comme ceci:
Lorsque vous avez terminé, n'oubliez pas de nettoyer la maison!
Voir aussi,
OriginalL'auteur Jason K.