6

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

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

谢谢!

4

4 回答 4

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
于 2014-11-19T21:29:49.227 回答
1

这是我今天早些时候在评论中提出的想法 :) 通常我们可以Floating User Form通过将表单的 Modal 属性设置为 0 来获得 a,这确实是一个Modeless状态。

需要考虑的基本要点:

  • 表单的外观和感觉使其看起来像一个按钮(不显示标题栏/不可调整大小/隐藏关闭按钮等)
  • 设置按钮的位置
  • 哪个事件应该触发表单按钮(工作簿打开)
  • 你会用Form InitializeEvent做什么
  • Whcih 事件应该让它保持在同一个位置活着

需要考虑的其他要点:

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

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

于 2013-01-16T21:05:27.590 回答
1

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

在此处输入图像描述

于 2018-12-17T10:32:15.013 回答
0

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

于 2021-01-10T10:49:29.807 回答