宏在excel中实现一个“+”按钮的N项,如何只创建一个宏,但分别递增所有项?

taor4pac  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(91)

我在excel中创建了一个宏并将其关联到一个按钮。基本上,该宏实现了一个“+”按钮,顾名思义,该按钮递增单元格中的计数器变量(假设单元格为B1)。例如,如果我单击按钮两次,B1存储值2,依此类推。
我有一个更长的项目列表,我需要这个“+”按钮(N个项目-> N个按钮来分别递增项目)。有没有解决方案不为所有N个项目创建宏?
编辑:
这是我的宏当前的样子:

Sub add_1()
    Range("B1").Value = Range("B1").Value + 1
End Sub

字符串
我从单元格“A1”中的按钮启动此宏。我还希望在“A2”中有一个按钮,用于递增单元格“B2”中的值,等等。

yshpjwxd

yshpjwxd1#

假设你在第1行有标题,你想在C列有加号按钮,那么下面的代码将帮助你。

Option Explicit

Sub add_buttons()
Dim btn As Button
Dim i As Long, last As Long
Dim rng As Range
last = Cells(Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False
ActiveSheet.Buttons.Delete
For i = 2 To last
    If Cells(i, 2) <> "" Then
        Set rng = Cells(i, 3)
        Set btn = ActiveSheet.Buttons.Add(rng.Left, rng.Top, rng.Width, rng.Height)
        With btn
            .OnAction = "btn_plus"
            .Caption = "+"
            .Name = "btn_plus_" & i
        End With
    Else
        Exit For
    End If
Next i
Application.ScreenUpdating = True
End Sub

Sub btn_plus()
Dim i As Long
If Left(Application.Caller, 8) = "btn_plus" Then
    i = CInt(Mid(Application.Caller, InStrRev(Application.Caller, "_") + 1))
    Cells(i, 2) = Cells(i, 2) + 1
End If
End Sub

字符串
第一个子add_buttons在B列中的每个值旁边添加按钮。第二个子函数btn_plus将+1添加到被单击的按钮旁边的单元格。

4xrmg8kj

4xrmg8kj2#

我创建了这个宏:

Sub Increase()
ActiveCell.Value = ActiveCell.Value + 1
End Sub

字符串
...并添加了一个命令按钮,单击时启动此宏。
我选择单元格“B2”,输入数字5并点击两次。
然后我选择单元格“B3”并点击两次:
生成的屏幕截图:


的数据

相关问题