Excel:固定按钮位置

时间:2013-01-15 19:14:43

标签: excel vba excel-vba excel-2010

需要一些帮助在Excel工作表上附加Excel / VBA按钮。无论我如何滚动或缩放,我都需要它保持在屏幕上的相同位置。我最好在屏幕的左下角或右下角。

我尝试过添加一个按钮。然后,我右键单击按钮。点击格式控件 - >属性 - >选择不移动或使用单元格调整大小。我错过了一些不起作用的东西吗?

谢谢!

4 个答案:

答案 0 :(得分:3)

我知道这篇文章已经过时了,但是这对任何人来说都是有用的。 ActiveWindow的VisibleRange属性可以解决此问题。使用这样的东西:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveSheet.OLEObjects("MY_BUTTON'S_NAME")
        .Top = ActiveWindow.VisibleRange.Top + ActiveWindow.VisibleRange.Height - 5
        .Left = ActiveWindow.VisibleRange.Left + ActiveWindow.VisibleRange.Width - .Width - 5
    End With
End Sub

答案 1 :(得分:1)

以下是我今天早些时候发表评论的想法:)通常我们可以通过将表单的Modal属性设置为0来获得Floating User Form,这确实是Modeless状态。 / p>

要考虑的基本要点:

  • Look&感觉形式使它看起来像一个按钮(不显示标题栏/不可调整大小/ 隐藏关闭按钮等)
  • 设置按钮的位置
  • 哪个事件应触发表单按钮(WorkBook Open)
  • 你会对Form Initialize事件
  • 做些什么
  • Whcih事件应该让它保持在同一位置 alive

需要考虑的其他要点:

该文章包括以下信息,请注意最后一行:)

它们使您可以访问VBA或构成VBA项目的对象(UserForms,Workbooks等)无法提供的功能。当您调用API时,您将绕过VBA并直接在Windows上调用。这意味着您没有获得VBA通常提供的类型检查等安全机制。如果您将无效值传递给API或(一个非常常见的错误)使用ByRef参数而不是ByVal参数,您很可能完全立即崩溃Excel,您将丢失所有未保存的工作。 我建议您在确认API调用稳定之前,在调用API函数之前保存您的工作。

答案 2 :(得分:0)

在工作表的开头添加新行,并在其上设置按钮,然后: 冻结第一行

enter image description here

答案 3 :(得分:0)

右键→属性→放置→更改为3。