0

除了非常基本的 Excel 功能之外,我对任何东西都很陌生。我正在尝试构建一个简单的电子表格来帮助保留体育赛事的统计数据。我想要有可以单击的按钮,然后将一个(数值)添加到第二张工作表中的相应单元格。我发现这段代码将为第一张纸上的单个按钮和第二张纸上的单个单元格执行我想要的操作:

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 行的第一列单元格变成一个增加 stat 的按钮

只需修改列号和行号即可定位虚拟按钮

于 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 回答