7
votes

Valeur de réglage du classeur actif dans Excel VBA

I Pour le moment, mon travail de classeur est-il configuré de cette façon, dans l'endroit où le classeur est codé dur dans la commande définie, je me demande s'il y a un moyen de le faire pour que je puisse l'avoir là où il est fluide? Donc, peu importe où ce code est placé (dans un autre classeur), le code s'adaptera à ses nouveaux environs.

Cela a-t-il un sens?

ci-dessous est ce que j'utilise maintenant, ce que je voudrais le faire, c'est pour le activeworkbook ou quelque chose du genre être utilisé à la place. Comme cela sera défini au début du code et non au milieu.

SET WOOOR = Application.workBooks ("Open Command Report.xlsm")


0 commentaires

3 Réponses :


25
votes

Vous êtes probablement après SET WOOR = CEDWORKBOOK

juste pour clarifier

Ce charbon se référera toujours au classeur que le code réside dans

activeworkbook se référera au classeur actif

Faites attention à la manière dont vous utilisez cela lorsque vous traitez avec plusieurs classeurs. Cela dépend vraiment de ce que vous voulez atteindre quant à la meilleure option.


4 commentaires

+1 pour expliquer la différence et quand et où il peut être le plus approprié, surtout parce que l'OP est un peu vague.


Personnellement, je n'utilise jamais activeworkbook à l'exception de la capture d'événements d'interface graphique de l'utilisateur et même d'essayer d'éviter.


Je suis d'accord. J'ai tendance à définir tous les cahiers de travail que j'ai besoin de variables comme Set wkbmain = ce charbon ou classeur ("Main") SET WKBPROCESS = workbooks ("processus") pour eux au besoin. Trouvez que c'est le moyen le plus sûr d'aller sous forme activeworkbook peut être velu et traité le code lorsque vous prévoyez le moins attendu.


Aussi activeworkbook and ActiveHeet implique que vous avez utilisé activate ou sélectionnez quelque part qui peut aussi être discutable :)



3
votes

Ceci est tout ce dont vous avez besoin xxx


2 commentaires

C'est ça? Vous savez après avoir été jusqu'à présent avec Excel VBA, il y a tellement de façons de faire des choses, il semble que j'oublie parfois les moyens les plus simples parfois. Merci!


Re-lisant votre question Je ne sais pas si c'est ActiveWorkbook ou ce charbon que vous avez après.



0
votes

Essayez ceci.

Dim Workbk as workbook
Set Workbk = thisworkbook


0 commentaires