0

私は非常に基本的な Excel 機能を超えたものに非常に慣れていません。スポーツイベントの統計を維持するのに役立つ簡単なスプレッドシートを作成しようとしています。クリックして、2 番目のシートの対応するセルに 1 (数値) を追加できるボタンが必要です。このコードは、最初のシートの単一のボタンと2番目のシートの単一のセルに対して必要なことを行うことがわかりました。

Sub Player_Pass()
Sheets("Sheets").Range("C4").Value = Sheets("Stats").Range("C4").Value + 1
End Sub

しかし、私は約 100 個のボタンを持っており、ボタンごとに異なる名前と異なるパラメーターを持つ個別のモジュールを作成することは、最も洗練されたソリューションではないようです。任意の提案をいただければ幸いです。

4

2 に答える 2

0

これを試して

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo exitSub
    With Target
    If .Column = 1 Then
    If .Row < 4 Then Exit Sub
    Sheets("Stats").Range("C" & .Row).Value = Sheets("Stats").Range("C" & .Row).Value + 1
    .Offset(0, 3).value = Sheets("Stats").Range("C" & .Row).Value
    .Offset(0, 1).Select
    End If
    End With
exitSub:
End Sub

これを「スプレッドシート」ワークシートに入れます

これにより、行 3 よりも大きい 1 列目のセルが、統計をインクリメントするボタンに変わります。

列と行の番号を変更して仮想ボタンを配置するだけです

于 2013-02-12T05:38:53.717 に答える
0

すべてのボタンを共通のマクロに割り当ててから、Application.Caller実行するアクションを決定するために使用できます

Sub ButtonClicked()
    Dim ac

    ac = Application.Caller
    Debug.Print ac, ActiveSheet.Shapes(ac).TopLeftCell.Address()
    'do some action according to which button was clicked...

End Sub
于 2013-02-12T01:45:57.997 に答える