关于excel中命令按钮(VBA)

我想让commandbutton浮于窗口之上,具体说来,就是当我冻结了窗口,无论上下左右移动这个按钮,它还是一直能显示,怎么写代码?还有就是大概说一下命令按钮activeX控件与表单控件的区别?

按照你的意思,

就不应该做在sheet上,

而应该使用ToolBar,

ToolBar是可以漂浮在窗口上的,

不随sheet变化而变化,

甚至删除sheet都没有问题。

Sub My_Bar_Set()
    Dim myBar As CommandBar
    Dim myBtm As CommandBarButton
    '建立新"Bar1"工具栏
    Set myBar = CommandBars.Add("bar1", msoBarFloating)
    Set myBtm = CommandBars("Bar1").Controls.Add(Type:=msoControlButton)
    
    '设置"Bar1"工具栏
    With Application.CommandBars("Bar1").Controls(1)
        .OnAction = "My_menu" 'My_menu是一个sub,里面是单击按钮后要执行的程序
        .Caption = "asd"
        .Height = 12
        .Width = 51
        .Visible = True
        .Enabled = True
    End With
    
    '根据显示器分辨率设置"Bar1"位置
    Dim H As Long
    Dim V As Long
    H = 800 '我的显示器设为800*600,你可以根据你的分辨率填写
    V = 600
    With Application.CommandBars("Bar1")
        .Top = V / 2
        .Left = H - 80
        .Visible = True
    End With
    
    
End Sub

Sub My_menu()
    ActiveCell.Value = 1234 '此处为随意写了一句,这段程序是设置在工作簿open时自动运行的,原程序是调用一个窗口,然后进行选择操作
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-20
可以新建菜单项,将按钮功能在新建菜单中实现。

也可以将按钮放在冻结的区域,比如第一行被冻结,按钮放在第一行。追问

比如第一行被冻结,按钮要是放在第二行,能不能实现?具体该怎么做?

追答

追问

。。。。不是说一二行同时被冻结,我是说只有首行被冻结,按钮在第二行,理解?

追答

理解!
浮动在当前画面的按钮,微软是否支持,不知道。估计---悬
相对可行的方法,将按钮放到工具栏,也就是菜单项总去。

相似回答