在excel VBA中,要获取当前button的位置,可以把语句写到类模块里面吗如果可以,该怎么写呢

在excel VBA中,要获取当前button的位置,可以把语句写到类模块里面吗如果可以,该怎么写呢,第1张

在自动添加时可以修改按钮属性;

onAction可以带参数调用,来调定是哪个按钮事件,比如:

OnAction = "'GoToSheet """ & Name & """'" '带字符串参数

注意:参数一定要是字符型,Name只引用初始时的值,若使用时再改变无效。

首先 找到 找到外部程序的主窗口的句柄 然后再查找其子窗口父窗口用findwindow就可以 子窗口要指定要查找窗口的classwindows 中每一个窗口都有一个类的比如记事本的文本框 类名叫edit VB的textbox 类名叫ThunderRT6TextBox等等

表单控件

Sub 显示行号()

 MsgBox ActiveSheetShapes("按钮 1")BottomRightCellRow

End Sub

存放代码参考

Excel数据如何快速排列

ActiveX控件

Private Sub CommandButton1_Click()

 MsgBox Shapes("CommandButton1")BottomRightCellRow

End Sub

Excel工作表被修改后自动升序排列

代码放在

在 VBA 中,可以使用 UserForm 来创建一个自定义的用户界面,并在其中添加按钮来执行特定的 *** 作。下面是将模板导出为按钮的一般步骤:1 打开 VBA 编辑器,选择“插入”菜单下的“用户窗体”选项,创建一个新的 UserForm。

2 在 UserForm 上添加一个按钮控件,可以使用“工具箱”中的“按钮”工具来添加。

3 双击按钮控件,进入按钮的“Click”事件处理程序。

4 在按钮的“Click”事件处理程序中,编写代码来执行所需的 *** 作。可以使用模板中的代码,或者编写新的代码。

5 在代码编写完成后,保存 UserForm 并关闭 VBA 编辑器。

6 在 Excel 工作表中,右键单击任意位置,选择“插入”菜单下的“按钮”选项,创建一个新的按钮。

7 右键单击新创建的按钮,选择“编辑”选项,进入按钮的属性设置。

8 在按钮的属性设置中,选择“宏”选项卡,然后选择刚才创建的 UserForm 中的按钮事件处理程序。

9 点击“确定”按钮,保存按钮设置。

现在,当您单击新创建的按钮时,将会执行 UserForm 中的按钮事件处理程序,从而执行所需的 *** 作。

有宏按钮 Button 1 和 控件窗体按钮 CommandButton1 两种。

宏按钮

图形类别名:msoFormControl

图形类别:Type = 8

默认名称:Button 1

更改按钮名称语句: AlternativeText = "按钮新名称"

宏调用属性: OnAction "宏名"

宏指定方法: 按钮右键菜单中指定宏

可以任意指定模块或代码页中已有的宏名

控件按钮

图形类别名:msoOLEControlObject

图形类别:Type = 12

默认名称:CommandButton1

按钮名称:默认=CommandButton1

更改按钮名称语句: CommandButton1Caption = "按钮新名称"

宏调用属性: OnAction "" (此属性不用)

宏指定方法:

在代码页的

Private Sub CommandButton1_Click()

End Sub

中写入或编辑代码、

无法在控件菜单中指定模块中已有的宏

但你当然可以这么来:

Private Sub CommandButton1_Click()

Call 宏名

End Sub

可以使用SendKeys方法来按下F9按键。使用方法如下:

Private Sub Worksheet_Change(ByVal Target As Range)

    SendKeys "{F9}"

End Sub

SendKeys 方法

参阅参阅参阅参阅

将击键发送给活动应用程序。

expressionSendKeys(Keys, Wait)

expression      可选。该表达式返回一个 Application 对象。

Keys      Variant

类型,必需。要发送的键或者组合键,以文本方式表示。

Wait      Variant 类型,可选。如果该值为 True,则 Microsoft Excel 等待击键处理完后再将控制返回到宏;如果该值为 False(或者省略该参数),则宏继续执行而不等待击键处理完毕。

说明

本方法将击键放到键盘缓冲区。某些情况下,在调用要使用击键的方法之前必须先调用此方法。例如,若要往对话框中发送密码,则必须在显示对话框之前调用 SendKeys 方法。

Keys 参数可指定任何单个键或与 Alt、Ctrl 或 Shift

的组合键(或者这些键的组合)。每个键可用一个或多个字符表示。例如,"a" 表示字符 a,或者

"{ENTER}" 表示 Enter。

若要指定在按相应键时不会显示的字符(例如,Enter 或 Tab),请使用下表所列的代码来表示相应的键。表中的每个代码表示键盘上的一个键。

键                                 代码

Backspace      {BACKSPACE} or {BS}

Break              {BREAK}  

Caps Lock       {CAPSLOCK}  

Clear              {CLEAR}

Delete 或 Del   {DELETE} 或 {DEL}

End    {END}  

Enter    ~(波形符)

Enter(数字小键盘)   {ENTER}  

Esc    {ESCAPE} 或 {ESC}

F1 到 F15    {F1} 到 {F15}  

Help    {HELP}  

Home    {HOME}  

Ins    {INSERT}  

Num Lock    {NUMLOCK}  

Page Down    {PGDN}  

Page Up    {PGUP}  

Return    {RETURN}  

Scroll Lock    {SCROLLLOCK}  

Tab    {TAB}  

向上键    {UP}  

向下键    {DOWN}  

向右键    {RIGHT}  

向左键    {LEFT}  

也可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。要指定与其他键组合使用的键,请使用下表。

要组合的键

在键代码之前添加

Shift    +(加号)

Ctrl      ^(乘幂)

Alt      %(百分号)

示例

本示例使用 SendKeys 方法退出 Microsoft Excel。

ApplicationSendKeys("%fx")

你好,让我们一起来看个例子,比如 Excel 的撤销按钮(实际上是一个 msoControlSplitDropdown 类型的按钮,该按钮的 Id 为 128)有如下三个列表项:

可以通过下面的参考代码把这三个列表项全部打印到立即窗口(Ctrl+G):

Public Sub PrintUndoText()

    Dim lngIndex As Long

    Dim cbcbUndo As CommandBarComboBox

    

    Set cbcbUndo = CommandBarsFindControl(, 128)

    

    For lngIndex = 1 To cbcbUndoListCount

        DebugPrint cbcbUndoList(lngIndex)

    Next

    

    Set cbcbUndo = Nothing

End Sub

执行效果如下:

如有问题,请提出!

以上就是关于在excel VBA中,要获取当前button的位置,可以把语句写到类模块里面吗如果可以,该怎么写呢全部的内容,包括:在excel VBA中,要获取当前button的位置,可以把语句写到类模块里面吗如果可以,该怎么写呢、在vba中,已知主程序的句柄,如何获取标题.控件等等等...、VBA如何获取宏按钮的所在的行号或列号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10126602.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存