在 Excel 工作表上附加 Excel/VBA 按钮需要一些帮助。无论我如何滚动或缩放,我都需要它保持在屏幕上的相同位置。最好,我需要在屏幕的左下角或右下角。
我试过添加一个按钮。然后,我右键单击该按钮。单击“格式控件”->“属性”->“不移动或按单元格调整大小”。我是否错过了一些使这不起作用的东西?
谢谢!
在 Excel 工作表上附加 Excel/VBA 按钮需要一些帮助。无论我如何滚动或缩放,我都需要它保持在屏幕上的相同位置。最好,我需要在屏幕的左下角或右下角。
我试过添加一个按钮。然后,我右键单击该按钮。单击“格式控件”->“属性”->“不移动或按单元格调整大小”。我是否错过了一些使这不起作用的东西?
谢谢!
我知道这篇文章很旧,但对任何人都可能有用。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
这是我今天早些时候在评论中提出的想法 :) 通常我们可以Floating User Form
通过将表单的 Modal 属性设置为 0 来获得 a,这确实是一个Modeless
状态。
需要考虑的基本要点:
Form Initialize
Event做什么需要考虑的其他要点:
如果您最小化 Excel Window 实例,您打算如何管理按钮的状态并使其保持可见
文章包括以下信息,请注意最后一行:)
它们使您可以访问 VBA 或组成 VBA 项目的对象(用户窗体、工作簿等)不可用的功能。当您调用 API 时,您将绕过 VBA 并直接在 Windows 上调用。这意味着您无法获得 VBA 通常提供的类型检查等安全机制。如果您将无效值传递给 API 或(一个非常常见的错误)使用 ByRef 参数而不是 ByVal 参数,您很可能会立即使 Excel 完全崩溃,并且您将丢失所有未保存的工作。我建议在你确信你的 API 调用是可靠的之前,在调用 API 函数之前保存你的工作。
右键→属性→放置→更改为3。