Peut-on écrire une macro en C# pour Excel
Je traverse sur 25 feuilles dans excel pour faire des opérations.Je suis en train de faire à l'aide de vba et de trouver qu'il est vraiment très lent,donc je voulais savoir si je pouvais utiliser le C# et si faire cela me permettrait d'accélérer le processus.
- Je ne pense pas que vous pouvez utiliser C# directement dans une macro. Vous pouvez créer un AddIn écrit en C# pour travailler avec la fiche. Si elle accélère le processus ne peut pas être répondu jusqu'à ce que vous décrivez ce que vous faites.
- salut, s'il vous plaît accepter ma réponse
Vous devez vous connecter pour publier un commentaire.
Appel de C# à partir d'un classeur Excel comme VBA macro - vous ne pouvez pas
Accès classeur Excel à partir de C# de l'application - vous pouvez. Ceci est appelé Microsoft Visual Studio Tools pour Office (VSTO)
Bien que vous pouvez être en mesure d'écrire un équivalent en C# pour votre macro VBA à l'aide de VSTO, je doute très bien si elle ne fait aucune différence significative de rendement.
Dans les deux cas, vous aurez la manipulation de la même Excel objets COM et le temps d'exécution est susceptible d'être très similaires.
Votre performance dépendra principalement sur les techniques que vous utilisez pour manipuler les objets Excel. Comme simple exemple, vous pouvez affecter des valeurs à partir d'une Plage Excel un tableau en 2 dimensions en une seule instruction: c'est beaucoup plus rapide que d'une itération à travers les lignes et les colonnes dans le code et copier les valeurs dans votre tableau un par un.
Je vous recommande la poste bits du code VBA que vous trouvez trop lent, et demander des conseils sur l'amélioration des performances.
Vous pouvez essayer mon ESharper complément à écrire un Excel automation de commande en C#. Il est plus facile de créer un application en C# ou un complément, et vous aurez accès à la fois du modèle objet Excel et Excel API C avec plus d'options pour l'optimisation des performances.
Quelles sont les opérations que faites-vous exactement? Tout d'abord, vous n'avez pas de cas besoin d'écrire le code VBA de votre auto. Vous pouvez simplement enregistrer une macro dans un classeur et de l'enregistrer dans C:\Program Files\Microsoft Office\Office12\Xlstart. Excel va enregistrer une macro pour les rendre disponibles dans tous les fiches que vous ouvrez.
Vous pouvez également ajuster la génération automatique de code VBA ci-dessus mentionné processus pour s'adapter à votre besoin.
Personnellement, je ne pense pas que l'écriture d'un C# ajoutez-en pour faire le travail permettra d'accélérer la tâche. VBA est un langage spécialement conçu pour travailler avec le Bureau du Modèle Objet. Si cela ne fonctionne pas assez vite, vous avez besoin de regarder ce que l'opération que vous effectuez?
Je pense que la création d'un C# add-in pour manipuler le Modèle Objet d'Excel et maintenant c'est trop de choses à faire. Il s'agira aussi d'une courbe d'apprentissage importante.