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. Python3基础 逻辑与 and

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  2. 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。

    package b; public interface ZuoBiao { double zuobiao(); } package b; public class Point implements Z ...

  3. VIM如何将全部内容复制并粘贴到外部

    ubuntu默认安装的vim是不支持系统剪切.粘贴版的,需要执行以下安装:sudo apt-get install vim-gnome 注意要让vim支持系统粘贴板,首先执行sudo apt-get ...

  4. 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV

    之前有关卡尔曼滤波的例子都比较简单,只能用于简单的理解卡尔曼滤波的基本步骤.现在让我们来看看卡尔曼滤波在实际中到底能做些什么吧.这里有一个使用卡尔曼滤波在窗口内跟踪鼠标移动的例子,原作者主页:http ...

  5. [HDOJ5787]K-wolf Number(数位DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5787 题意:求[L,R]区间内的数字,使得所有长度为k的子数列内所有数位都不同. K<=5的所以 ...

  6. Java代码规范性

    ---------------------------------------------------------------------------------------------------- ...

  7. React生命周期浅析

    引言 关于React的生命周期API,官网,有着详细说明.但在实际写代码的过程中,这些说明不能解决所有的疑惑. 所以我列举了一些编码中常见用例,供大家参考. 示例代码如下 /* use case 1. ...

  8. ctDNA 相关网站-liquid-biopsy

    http://www.gene-quantification.de/liquid-biopsy.html Liquid Biopsy -- Definitions Liquid Biopsy -- r ...

  9. git学习笔记01-git最基本的工作原理分布式

    git学习的网站 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  --廖雪峰老师 ...

  10. Http协议简单学习笔记

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. 在HTTP1.0 ...