使用相对引用复制 Excel 按钮

使用相对引用复制 Excel 按钮

我正在构建库存工作簿。每行包含与零件编号相关的信息(包括数量)。我希望添加几个按钮:

  • 一个将库存数量加一
  • 将从库存数量中减去一个

因此,同一行上将有两个控制库存数量的按钮。我希望能够复制这些按钮并在工作簿中保留相对引用。例如,复制/复制到第 3 行的按钮将控制第 3 行的库存数量。

将会有 100 行,手动更改控件不切实际。理想情况下,解决方案将创建 1000 行并创建命令按钮。

答案1

有个想法。如何只创建 2 个按钮(而不是数百个)并让它们跟随选择移动?

编辑:经过一些讨论和澄清,OP Phil 要求当用户单击 F 列时,库存更新按钮出现在所选单元格的旁边,否则隐藏。

下面的视频展示了 tagalong 按钮的操作:

在此处输入图片描述

工作表有一个简单的宏,可以显示和移动按钮:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 6 Then
        ActiveSheet.Shapes("Picture 1").Visible = True
        ActiveSheet.Shapes("Picture 2").Visible = True
        With ActiveSheet.Shapes("Picture 1")
            .Left = Target.Offset(, 2).Left
            .Top = Target.Offset(0).Top
        End With
        With ActiveSheet.Shapes("Picture 2")
            .Left = Target.Offset(, 3).Left
            .Top = Target.Offset(0).Top
        End With
    Else
        ActiveSheet.Shapes("Picture 1").Visible = False
        ActiveSheet.Shapes("Picture 2").Visible = False
    End If    
End Sub

我无法更改常规 Excel 命令按钮的颜色,因此我插入了图片,并为图片对象分配了宏。这就是为什么在上面的代码中它们被引用为 Shapes("Picture 1")。如果您使用普通的 Excel 命令按钮,则引用将更改为按钮的名称。

按钮本身的代码更简单:

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

Sub Button2_Click()
    ActiveCell.Value = ActiveCell.Value - 1
End Sub

我希望这个帮助能祝你好运。

相关内容