2009-04-17 9 views
3

新しいワークブック内のコピー先ワークシートにコピー元のワークシートをコピーしたときにXLのマクロ割り当てラジオボタンの再定義に関する問題が発生しました。ファイルのコピー時にコマンドボタンにマクロを再割り当て

宛先ワークシートのラジオボタンをクリックすると、ソースブックRATHERを開いて、ボタンに割り当てられたマクロを実行しようとします。

私はチェックして、元のソースブックとして、宛先のブックに実際に同じマクロのコピーがあるかどうかを確認しました。しかし、ラジオボタンの右クリック/マクロの割り当てによって、私はパスがソースブック/ワークシートを指していることがわかります。

ソースワークシートから実行中に次のコードを試しましたが、動作しません。

コード:

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = "Sheet1.WEEKLY" 

XLはなく、元のソースブックに戻ってジャンプする、先のワークシートからそれを選ぶために知っているように、私は最後のSelection.OnActionコードを変更する方法を、あなたの提案をいただければ幸いです。

ありがとう

答えて

0

D'oh!フォームコントロールを使用していることが分かりました。

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = ThisWorkbook.name & "!Sheet1.WEEKLY" 

私はコントロールがShapesコレクションに表示されますが、彼らが実際にワークシートのコードで自分_CLICKイベントとOLEオブジェクトであることを考える:あなたはこのように、明示的にワークブックを参照することにより、目的のプロシージャを呼び出す確保することができます onactionを介して代替手順を割り当てることはできません。しかし、この重要な区別については、助けは予期せず漠然としている。

これをテストしている間にこれを確認しました。コントロールは常に親ワークシートの_clickイベントを参照します。どのようにワークシートをコピーしていますか?私はユーザーインターフェースを使って試してみましたが、標準とワークシートの両方のコードモジュールからプログラム的に試してみました。毎回同じ結果が得られました。

0

これはかなり更新されていますが、今後の求人者向けに投稿しています。

私はまったく同じ問題を抱えていたので、私はこの質問に遭遇しました。最後に、次の解決策を見つけて、ソースワークシート(存在する場合)から接続を削除する方法のヒントを得ました。

https://www.thespreadsheetguru.com/blog/correcting-shape-assigned-macro-links-after-copying-worksheet-vba

関連する問題