0

シートがアクティブになったときにボタンを作成するマクロを作成しました。次に、以下のコードを使用して呼び出しました。しかし、別のワークシートに移動するたびに、このボタンを含むシートに戻るたびに、マクロが機能します。ボタンをクリックしたときにマクロが動作するようにしたい

Private Sub Worksheet_Activate()
    Call sortData
End Sub

私が作成したマクロのコードは次のとおりです。

 Sub sortData()
'
'     
'

'

    ActiveSheet.Buttons.Add(689.25, 59.25, 133.5, 30).Select
    Selection.OnAction = "sortData"
    Selection.Characters.Text = "Sort Data"
    With Selection.Characters(Start:=1, Length:=28).Font
        .Name = "Times New Roman"
        .FontStyle = "Bold"
        .Size = 12
    End With
    Range("A1").Select


End Sub

今私の問題は、このボタンがクリックされたときに、以下に示すコードをどこに置くかです。または単にこのボタンを機能させるにはどうすればよいですか?? マクロを呼び出した同じシートにコードを入れようとしましたが、機能しません。

Sub sortData_Click() 'did i call the button right? but it is not working when i us it
'codes here
End Sub
4

1 に答える 1

0

VBA エディターで、[新しいモジュールを挿入] をクリックして (または、これを sortData と同じモジュールに配置することもできます)、次のコードを新しいモジュールに書き込みます。

Sub procedureName() 'procedure name is exactly the same as what you named in Selection.OnAction = "sortData"

'codes here
End Sub

Selection.OnAction = "sortData" ->>> を設定しているため、実際に行ったことは sortData() 呼び出し自体を作成することです->>>この名前を実行したいプロシージャ名に変更します

于 2013-05-20T07:57:26.220 に答える