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. P>
Cela a-t-il un sens? p>
ci-dessous est ce que j'utilise maintenant, ce que je voudrais le faire, c'est pour le activeworkbook code> ou quelque chose du genre être utilisé à la place. Comme cela sera défini au début du code et non au milieu. P>
SET WOOOR = Application.workBooks ("Open Command Report.xlsm") CODE> P>
3 Réponses :
Vous êtes probablement après juste pour clarifier p>
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. P> SET WOOR = CEDWORKBOOK CODE> P>
Ce charbon code> se référera toujours au classeur que le code réside dans p>
activeworkbook code> se référera au classeur actif p>
+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 code> à 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") CODE> SET WKBPROCESS = workbooks ("processus") code> pour eux au besoin. Trouvez que c'est le moyen le plus sûr d'aller sous forme activeworkbook code> peut être velu et traité le code lorsque vous prévoyez le moins attendu.
Aussi activeworkbook and ActiveHeet implique que vous avez utilisé activate code> ou sélectionnez code> quelque part qui peut aussi être discutable :)
Ceci est tout ce dont vous avez besoin
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.
Essayez ceci.
Dim Workbk as workbook Set Workbk = thisworkbook