📜  颤动底部工作表输入按钮覆盖流程 (1)

📅  最后修改于: 2023-12-03 15:12:53.614000             🧑  作者: Mango

颤动底部工作表输入按钮覆盖流程

在Excel中,如果你经常使用底部的工作表,可能会遇到这样的问题:当你滚动工作表的时候,输入按钮将消失在底部。

为了解决这一问题,我们可以使用VBA编写程序,在工作表下方添加输入按钮,并使其在滚动时保持固定。下面我们来介绍具体实现方法。

使用VBA添加输入按钮

首先,在Excel中打开Visual Basic Editor。进入“开发工具”选项卡,点击“Visual Basic”按钮即可进入。

接下来,创建一个新的模块。在模块窗口中,输入以下代码:

Sub addInputButton()
    Dim btn As Button
    Set btn = ActiveSheet.Buttons.Add(ActiveWindow.VisibleRange.Left, ActiveWindow.VisibleRange.Top + ActiveWindow.VisibleRange.Height - 20, 100, 20)
    btn.OnAction = "inputButtonClick"
    btn.Caption = "输入数据"
End Sub

Sub inputButtonClick()
    '在这里输入点击按钮后要执行的操作
End Sub

这段代码描述了一个名为addInputButton的子过程,可以在活动工作表的底部添加一个100x20的按钮。括号内的四个参数可以指定按钮的左、上、宽度和高度。在这里,我们使用了ActiveWindow.VisibleRange属性获取当前可见区域的信息。btn.OnAction属性定义了按钮被点击时执行的过程。

运行这段代码后,你将在底部看到一个名为“输入数据”的按钮。接下来,我们要让这个按钮始终保持固定。

让按钮保持固定

为了实现这一点,我们需要编写一个名为Worksheet_SelectionChange的事件处理程序,该程序将在每次选择发生更改时自动运行。在新的模块中,输入以下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        Const btnHeight = 20
        Dim buttonTop As Double
        
        With ActiveWindow.VisibleRange
            buttonTop = .Top + .Height - btnHeight
        End With
        
        With ActiveSheet.Buttons("输入数据")
            .Top = buttonTop
            .Left = ActiveWindow.VisibleRange.Left
        End With
    End If
End Sub

这段代码中,我们首先判断当前选择的单元格数量是否为 1,如果是,就获取可见区域的底部坐标,然后将按钮的顶部坐标设置为该值。这样,一旦用户滚动到底部,按钮就会始终保持在可见区域内。

测试

现在我们已经编写好了程序,可以测试它是否正常工作。首先,双击按钮,确保它能够正常执行操作。然后,尝试滚动工作表,观察按钮是否始终保持固定在底部。

如果一切正常,恭喜你,你已经成功地解决了Excel工作表底部输入按钮消失的问题!

总结

在本文中,我们介绍了如何使用VBA编写程序,使输入按钮始终保持固定在Excel工作表的底部。虽然这可能需要一些编程技能,但一旦掌握了相关技能,便可以轻松解决类似的问题。