今天给同事写了两个VBA宏,并分别把宏赋给了两个按钮。

因为两个宏都是实现在两种显示方式之间切换,于是我想除了功能的实现外,还希望在切换到其中一种方式时,按钮上面的文字也可以跟着改变,起到提示作用。

但是网上找了很多文章,都实现不了,而且很多都是针对Form表单控件的。所以自己尝试解决

先说明,我的按钮是 开发者菜单-插入-表单控件 默认下面的第一个。如下图

插入控件之后,可以直接在左上角显示单元格位置的地方修改它的名字,不修改将采用默认值。

在VBA中,先定义一个Button变量,再通过sheet对象和控件名字引用即可:

Sub getControls()
Dim sht As worksheet
Set sht = worksheets(sheetname) Dim bt As Button
Set bt = sht.[buttonName] bt.Caption = "控件显示的文字"
End Sub

这里容易令人困惑的是,一般我们在定义变量的时候,写完As加空格会有提示列表出现的,但是我在提示列表里面没有发现有Button这种类型。

此外,在引用控件的时候,方括号[]里面直接写控件名,不需要使用双引号

在写bt再加一个点的时候,就会有它的属性或方法的提示列表出现了

Excel VBA 获取按钮对象的更多相关文章

  1. EXcel vba 获取批注信息

    Public Function pizhu(i As Range) pizhu = i.Cells.Comment.Text End Function EXcel VBA获取批注信息

  2. Excel VBA获取当文件下级子目录或目录中文件

    '====================================================================== '功能: 查找指定文件夹含子文件夹内所有文件名或文件夹名 ...

  3. excel vba获取拼音

    Function PinYin2(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As ...

  4. Android自定义工具类获取按钮并绑定事件(利用暴力反射和注解)

    Android中为按钮绑定事件的有几种常见方式,你可以在布局文件中为按钮设置id,然后在MainActivity中通过findViewById方法获取按钮对象实例,再通过setOnClickListe ...

  5. Excel VBA入门(七)注释、宏按钮及错误处理

    系统性的知识前面已经讲完,从本章开始,本系列教程涉及的将会是一些相对凌散的内容. 1. 注释 代码注释是一件利人利己的事,为了方便自己在代码需要更新修改时,依然能够快速地看懂自己完的每一行代码到底是什 ...

  6. Excel VBA入门(五)Excel对象操作

    本章是本系列教程的重点.但我觉得应该不是难点.从第零章开始到学完本章,应该可以把VBA用于实战中了. Excel对象主要有4个: 工作薄 Workbook 工作表 Worksheet 单元格区域 Ra ...

  7. Excel VBA连接MySql 数据库获取数据

    编写Excel VBA工具,连接并操作Mysql 数据库. 系统环境: OS:Win7 64位 英文版 Office 2010 32位 英文版 1.VBA连接MySql前的准备 Tools---> ...

  8. Excel VBA(宏):添加宏

    写在前面: .编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结 ...

  9. Excel VBA语句集

    Excel VBA语句集 引子 最近批阅学生成绩,用Excel 处理学生成绩,用到VBA 提高办公效率.需要经常查阅VBA的一些用法 正文 定制模块行为 (1) Option Explicit '强制 ...

随机推荐

  1. Tornado的入门研究

    1.为啥要了解Tornado 首先,Tornado是大神写出来的,如果学习python的话,参照Tornado的源码是一件非常好的事情,属于FaceBook的开源代码 其次,Tornado就是我们在 ...

  2. Oracle instant client及pl sql developer的使用

    Oracle instant client的使用   最近重装了操作系统,使用的是Windows7 x64的版本,不准备安装Oracle,于是从官网上看到了Instant Client.   兴冲冲下 ...

  3. Redis持久化的简单介绍

    Redis的强大功能很大程度上是由于其将所有数据都存储在内存中,为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中. Redis支持两种方式的持久化,一种是RDB方 ...

  4. Sql Server 2012 存储过程的调试

    [一]Sql Server 关于存储过程调试SQL2000是在查询分析器中的对象浏览器中选中需要调试的存储过程,右键----调试---输入参数开始调试.sqlserver2008中则完全不同,变成了必 ...

  5. xml获取属性值的方法

    sSqlstr += string.Format(@" and businessattr.value('(/Arch/Field[@Name=""发文单位$$" ...

  6. 框架(yii和thinkphp)中实例化php内置或者扩展中的对象问题

    将php原生语句实例化SphinxClient对象移植到yii2框架中报错 原生语句中这样写: $s = new SphinxClient(); 框架中应该加入反斜杠,这样写: $s = new \S ...

  7. Eclipse中创建新的Spring Boot项目

    本文转载自:http://blog.csdn.net/clementad/article/details/51334064 简单几步,在Eclipse中创建一个新的spring Boot项目: 1.E ...

  8. C#制作自定义安装程序

    (一),安装程序 以前用vs制作过安装程序,现在把步骤写出来,有帮助的大家一定要顶哦 第一步:建立工程 1.打开vs,新建项目->其他项目类型->安装和部署(這個子项下面有安装项目和Web ...

  9. bzoj4353: Play with tree

    Description 给你一棵包含N个节点的树,设每条边一开始的边权为0,现在有两种操作:   1)给出参数U,V,C,表示把U与V之间的路径上的边权变成C(保证C≥0)   2)给出参数U,V,C ...

  10. Java 打印一个心心

    package Day8_06; public class For { public static void main(String[] args) { System.out.println(&quo ...