2016-03-18 8 views
2

アクティブなセルの値を取得するためにVBAを使用したいと思います。オンラインで検索すると、以下のコードが見つかりました。ブック全体の範囲でWorksheet_SelectionChangeを作成する方法?

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Sheets("sheet1").Range("Selection").Value = Cells(ActiveCell.Row, ActiveCell.Column).Value 
End Sub 

ただし、これらのコードをシート「sheet1」に配置する必要があります。私が3枚のシートsheet1, sheet2, and sheet3を持っているならば、私は上記のコードをコピーし、これらの3枚のシートの下に別々に少し修正して貼り付ける必要があります。

コードを別々のシートに置く必要はありません(ThisWorkbookのちょうど下に)、アクティブシートの値がどのシートにも関係なく取得できます。何をしたい

おかげ

+1

ThisWorkbookで「Workbook_SheetSelectionChange」イベントを使用できます。 –

+0

@ScottCraner Workbook_SheetSelectionChangeを使用してThisWorkbookの下に配置すると、コンパイルエラーが発生しました:プロシージャ宣言が、同じ名前のイベントまたはプロシージャの記述と一致しません。 – NewGuyComesIn

+0

'SheetSelectionChange'イベントハンドラのシグネチャには、イベントを発生させたシートを表す' Object'パラメータが含まれています。 –

答えて

4

は何を@ScottCraner said in a commentです:ThisWorkbookで、WorkbookタイプのSheetSelectionChangeイベントを使用します。

VBEはコードペインエディタのドロップダウンを提供します。 WorksheetオブジェクトのイベントハンドラをコピーしてWorkbookオブジェクトに貼り付けることはできません。また、「ちょうどうまくいく」ことを期待してください。ドロップダウンを使用し、VBEでハンドラスタブを生成させてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

End Sub 

イベントハンドラは署名に準拠する必要があります:あなたは署名が異なっている見ることができるように

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 

End Sub 

:このハンドラを生成しますドロップダウンからSheetSelectionChangeを選択

use the dropdowns!

彼らのためのイベントの(名前だけでなく)あなたが得ているエラー:

@ScottCraner if I use Workbook_SheetSelectionChange and put it under ThisWorkbook, I got Compile error: Procedure declaration does not match description of event or procedure having the same name.

+0

写真の説明に感謝します。今それは動作します。 – NewGuyComesIn

関連する問題