如何在Microsoft Excel中的单元格内插入一个相对button?

我正试图在Excel中插入一个单元格内的相对button。 实际上,我想要的是一个单元格内的button,当行/列被添加/删除时,可以相对移动。 此外,我希望它加载一个特定的文本下面的单元格包含button的单元格中。 这可以在Excel中完成吗? 我不知道如何进行! 新的VB! 任何帮助赞赏:)

编辑::

要定位一个相对button,我使用下面的代码:

Sub buttonInACell() Dim btn As Button Dim t Set t = ActiveSheet.Cells(10, 6) Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height) End Sub 

现在我需要添加一个macros到button来加载一个单元格下面的值..我想我应该使用TopLeftCell属性。 但是我怎样才能参考button?

要将macros指定给button,可以使用其OnAction属性 – 将其设置为要调用的macros的名称。 在这个macros里面,你可以使用Application.Caller来获取button的名字,并使用该名字来确定要采取的操作。

 Sub buttonInACell() Dim btn As Button Dim t, x For x = 1 To 5 Set t = ActiveSheet.Cells(2, x) Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height) btn.OnAction = "ClickedMe" Next x End Sub Sub ClickedMe() Dim c, s c = Application.Caller Set s = ActiveSheet.Shapes(c) s.TopLeftCell.Offset(1, 0).Value = "clicked" End Sub 

感谢@Tim的答案! 其实我厌倦了弄清楚自己,我按照我的要求达到了一个解决scheme,就是:

把button放在一个单元格中::

 Sub buttonInACell() Dim btn As Button Dim t Set t = ActiveSheet.Cells(10, 6) Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height) End Sub 

点击button::

 Public flag As Integer Sub buttonInACell_Click() Dim row As Integer, col As Integer 'flag=0 : no show, flag=1 : show row = ActiveSheet.Shapes(Application.Caller).TopLeftCell.row col = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column If flag = 0 Then ActiveSheet.Shapes(1).TextFrame.Characters.text = "Show data" If ActiveSheet.Cells(row + 2, col).Font.Color = vbRed Then ActiveSheet.Cells(row + 2, col).Value = "" End If ActiveSheet.Cells(row + 2, col).Font.Color = vbWhite ActiveSheet.Cells(row + 2, col).WrapText = False flag = 1 ElseIf flag = 1 Then ActiveSheet.Shapes(1).TextFrame.Characters.text = "Hide Data" If ActiveSheet.Cells(row + 2, col).Value = "" Then ActiveSheet.Cells(row + 2, col).WrapText = True ActiveSheet.Cells(row + 2, col).Font.Color = vbRed ActiveSheet.Cells(row + 2, col).Value = "Sorry! No Sample Data As of Yet!" Else ActiveSheet.Cells(row + 2, col).WrapText = True ActiveSheet.Cells(row + 2, col).Font.Color = vbBlack End If flag = 0 End If End Sub 

这实际上是做什么的,它创build一个切换button,并允许切换相对单元格中的数据! 🙂