利亚想要一个分配了宏的浮动按钮。因此,当她向左,向右,向上或向下移动时,按钮会停留在她正在工作的单元格附近。利亚想知道是否有办法在Excel中添加这样的按钮。

如果不使用宏来控制按钮的放置,则无法做到这一点。 (这不是一个大问题,因为您已经在工作簿中使用了至少一个宏,即浮动按钮触发的宏。)

在详细介绍如何执行此操作之前,您需要考虑是否确实要使用此方法。例如,您可以将宏分配给快捷键或快速访问工具栏上的按钮。两种方法都不需要不断调整浮动按钮的位置。

如果您确实想使用按钮路线,请继续创建屏幕上的按钮并将其链接到您的宏。然后,只需创建一个事件处理程序,即可在每次更改所选单元格时重新定位按钮。例如,假设按钮的名称为“按钮1”。在这种情况下,您可以使用以下宏:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveSheet.Shapes("Button 1")

.Top = Target.Offset(1).Top         .Left = Target.Offset(, 1).Left     End With End Sub

请记住,这是一个事件处理程序,因此需要将其放置在应用它的工作表的代码窗口中。这将导致按钮始终移动到所选单元格的右下角附近。

还应注意,您可以通过两种方式创建宏按钮-作为Active X控件或作为传统的非Active X控件。如果您使用的是旧版按钮,则上述方法效果很好。但是,如果使用的是Active X控件,则只需要更改一下宏即可:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveSheet.OLEObjects("CommandButton1")

.Top = Target.Offset(1).Top         .Left = Target.Offset(, 1).Left     End With End Sub

请注意,唯一的变化是所引用的对象。有了适当的事件处理程序后,无论何时更改屏幕上所选的单元格,按钮都将重新定位为仅位于所选单元格的右下角。因此,这不是真正的“浮动”

始终徘徊在同一地点的按钮。在Leah的情况下,这应该可以,因为她希望按钮位于她正在工作的单元格(选定的单元格)附近,而不是她正在查看的单元格(例如,当她使用滚动条滚动时)附近。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(13544)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。