EXCEL中有两种控件:表单控件和active控件

表单控件是excel5和excel95开始使用的,从excel97开始,active控件开始出现

关于表单控件和active控件的区别和使用范围,网上有很多表述,以下是我在实际使用过程中的一些体会:

1.在兼容性上,表单控件要强于active控件,由于active需要引用refedit.dll文件,而不同版本的office此文件不同,会造成在某台电脑上编写的VBA程序,换另一台电脑就不能使用

2.在事件和属性上,表单控件不如active控件,表单控件几乎只有一个click事件,而active控件每个控件都有非常多的事件,而且每个事件也可以编写不同的过程。active控件可控制的属性也非常多,这为程序界面设计提供了很多的变化。

3.多数情况下,我们通过表单控件加编写特定的过程就可以完成对工作表的大部分控制,但是如果对程序的界面设计或者人机交互(例如弹出输入框等)要求较高,则应该使用active控件,并且active控件应和userform一起使用才更能发挥其作用

4.表单控件作为一个旧版excel留下来的功能,也许微软会在未来将其取消,完全由active所取代,这也是一个需要权衡的地方。

在VBA中的使用上,二者也有一些区别

一、表单控件

VBA中引用表单控件有两种方法:

1.直接使用对象名称,这样非常简洁方便,但是编辑器中输入代码没有方法和属性的提示
如:Sheet1.Labels("标签 1").Caption = "我是标签1"
注意空格
也可以使用如下语句实现变量控制
Sheet1.Labels("标签 " & i).Caption = "我是标签1"

2.使用DrawingObjects表示
如:Sheet1.DrawingObjects("标签1").Caption = "我是标签1"
但是注意,DrawingObjects正在渐渐被shape对象取代

二、active控件

VBA中引用active控件可以使用oleobject对象,并且可以加变量
Sheets(1).OLEObjects("CheckBox" & i).Object.Value

Excel中的表单控件和active控件的更多相关文章

  1. JavaScript中的表单编程

    表单编程 1获取表单相关信息 1.什么是表单元素 1.什么是表单元素 在H TML中表单就是指form标签,它的作用是将用户输入或选择的数据提交给指定的服务器 2.如何获取表单元素 <form ...

  2. Django中的表单

    目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django  还是 PHP还是JSP还是其他语言.只要把 inpu ...

  3. AngularJS中的表单验证

    AngularJS中的表单验证 AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则 ...

  4. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

  5. MVC中处理表单提交的方式(Ajax+Jquery)

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t&q ...

  6. angular中的表单验证

    angular中的表单验证很强大, 一共有5中验证信息,$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候,为true,不通过的时 ...

  7. MVC中Form表单的提交

    概述 Web页面进行Form表单提交是数据提交的一种,在MVC中Form表单提交到服务器.服务端接受Form表单的方式有多种,如果一个Form有2个submit按钮,那后台如何判断是哪个按钮提交的数据 ...

  8. YII中的表单挂件

    利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...

  9. 使用js控制表单重复提交(1加锁,2事件方式,3 EasyUI中解决表单重复提交)

    方法一. var flag = true; $(function() { $("#interested").click(function() { beInterested(); } ...

随机推荐

  1. ruby学习总结03

    1.方法的调用 对象.方法名(参数1,参数2,...)     可以省略参数列表的() 对象.方法名(参数1,...) do |变量1,变量2,...|            可以省略参数的() 块内 ...

  2. C#占位符与格式化字符串

    原文地址:http://www.cnblogs.com/fumj/articles/2380290.html 在c#中有两种方式可以输出多个字符 其中的一种: static void Main()   ...

  3. CF 321B Ciel and Duel(费用流)

    题目链接:http://codeforces.com/problemset/problem/321/B 题意:两个人,分别有n.m张牌.每张牌有两个属性类型和能力,类型为攻击或者防守.B的m张牌的属性 ...

  4. Windows平台安装Redmine2.5.x

    安装准备 下载RubyInstaller和Development Kit,也可以使用RailsFTW,轻松搞定windows下的安装. 下载MySql 下载mysql-connector-c-noin ...

  5. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  6. [HDOJ2717]Catch That Cow

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  7. windows跟linux文件共享

    方法一:windows下的winscp工具 前提条件:windows能够ping通linux:linux关闭防火墙,/etc/init.d/iptables stop 在windows下运行winsc ...

  8. JVM 1.类的加载、连接、初始化

    Java类的加载是由类加载器来完成的,过程如下: 首先,加载是把硬盘.网络.数据库等的class文件中的二进制数据加载到内存的过程,然后会在Java虚拟机的运行时数据区的堆区创建一个Class对象,用 ...

  9. FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...

  10. 详解C#委托,事件与回调函数

    .Net编程中最经常用的元素,事件必然是其中之一.无论在ASP.NET还是WINFrom开发中,窗体加载(Load),绘制(Paint),初始化(Init)等等.“protected void Pag ...