读罢《EXCEL专业开发》,最大的震撼就是著者对VBA技术的追求以及对Excel艺术品般的设计。受到此书著者的启发,也打算把自己在日常开发中一些经验总结出来,一来作为自己的知识储备,二来也能在网络上分享。

Excel公式、函数以及自身单元格的格式化为UI的设计提供了极大的便利性,这方面的内容在《Excel专业开发》中有详述,就不必赘述了。在该书中,也对预定义名称做了论述。其中提到,预定义名称是工作表用户接口设计中的一个重要组成部分,包括预定义的命名常量、命名区域和命名公式。该篇文章将专注于命名区域在UI设计中的作用做一个总结。

1、按照具体数据要求可将不同区域分别进行命名,保证每部分信息的独立性,方便数据验证或区域验证等要求,如可将在销售分析中的客户信息与销量信息分别命名,分别分析两个部分的数据或信息。

采用这种方式后,判断是否选中了相关命名区域可采用与区域相关的一些函数:

Application.Intersect
Application.Union

2、可在已命名的区域内将每列项采用枚举类型设立索引,以便UI变更时统一修改。

3、灵活使用相对引用于绝对引用。

4、使用工作表的Protect方法将UI保护起来,防止用户操作不慎输入坏的数据,破坏一致性。

5、将标题行、数据行设为Public的常数变量以便使用。

6、将使用行数变为工作表的属性,便于调用。

PS几条VBA的特殊TIPS:

1、VBA的IF不支持条件短路;

2、使用不同进程的EXCEL打开文件。

With Application
.DisplayAlerts = False
.IgnoreRemoteRequests = True
.DisplayAlerts = True
End With

VBA开发经验总结之一:利用Range对象设计用户界面的更多相关文章

  1. VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

    在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10")  VB的语法,使用参数的不一定是方法,也有可能是属性 ...

  2. 处理Selection对象和Range对象——Word VBA中重要的两个对象

    处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...

  3. Excel VBA Range对象基本操作应用示例

    [示例01] 赋值给某单元格[示例01-01] Sub test1()Worksheets("Sheet1").Range("A5").Value = 22Ms ...

  4. VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法

    1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...

  5. Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)

    在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建 ...

  6. 运用 Range 对象处理 Word 文档内容

    运用 Range 对象处理 Word 文档内容   在所有 Office 应用程序中,Microsoft Word 可能是应用最广泛的应用程序,它还经常在自定义 Office 解决方案中扮演重要的角色 ...

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

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

  8. 8 Range 对象

    8.1 引用Range 引用Range的主要方法: Application.ActiveCell Application.Range Application.Selection Worksheet.C ...

  9. Python中的常用内置对象之range对象

    range(start, stop[, step])  可生成满足条件的数.具体来说是返回一个从start开始到小于stop的相邻数的差step的等差数列列表.结果中包含start一直到小于stop的 ...

随机推荐

  1. Java多线程内存模型

    Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果.在此之前 ...

  2. HW4.20

    public class Solution { public static void main(String[] args) { boolean isPrime = true; int count = ...

  3. poj 1193 内存分配

    好麻烦的模拟题,一次性过了就好!!!不过用了两天哦.. 小伙伴们慢慢做哦. #include <iostream> #include <list> #include <q ...

  4. 用slf4j统一管理日志总结

    用slf4j统一管理日志总结 参考网页:http://www.slf4j.org/ 一.使用slf4j统一管理并配置统一使用log4j日志 使用的jar:(slf4j-api-1.7.5.jar,jc ...

  5. Quartz定时任务学习(五)触发器

    顾名思义,Trigger(触发器)的责任就是触发一个 Job 去执行.当用 Scheduler 注册一个 Job 的时候要创建一个 Trigger 与这个 Job 相关联.Quartz 提供了四种类型 ...

  6. java接口相关例题

    java接口相关习题 interface Graphics{  //接口里面只能用抽象方法  public abstract double area();    }//设置 平面类class Plan ...

  7. 绘制3D的托卡马克位形图的matlab脚本文件 ThreeD.m

    % 绘制3D的托卡马克位形图, (V 0.1 by Jiale Chan for Y. H. Huang) % Dee Formula % 特征参数     rzero = 2.0;     rmax ...

  8. linux 通用时钟框架CCF

    linux CCF 时钟框架 简单介绍 这里讲的时钟是给soc各组件提供时钟的树状框架,并非内核使用的时间,和其它模块一样,clk也有框架,用以适配不同的平台.适配层之上是客户代码和接口,也就是各模块 ...

  9. 全文索引(三)lucene 分词 Analyzer

    分词: 将reader通过阅读对象Analyzer字处理,得到TokenStream处理流程被称为分割. 该解释可能是太晦涩.查看示例,这个东西是什么感性的认识. 样品:一段文本"this ...

  10. ViewPager中使用自定义的ListView实例

    这篇内容是上一篇的延续,因为在上一篇的测试ViewPager成功了,才能实现这一篇的和ListView合在一起使用 效果图如下: 不愿意说理论,直接上代码 1.清单文件 activity_main.x ...