VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的。Activate方法的作用是激活,而Select方法的作用是选择。其区别如下:

1.对于“Sheets”对象

Sheets.Select可以同时选择多个工作表,而Sheets.Active不能同时激活多个工作表。如下面的语句:

Sub Test1()
       ActiveWorkbook.Sheets(Array(1, 2, 3)).Select '可以同时选择3个工作表
    End Sub
    Sub Test2()
       ActiveWorkbook.Sheets(Array(1, 2, 3)).Activate  '不能同时激活3个工作表,出现错误
    End Sub

另外,对于隐藏的工作表,Sheets.Select方法不能选择隐藏的工作表,而Sheets.Activate方法可以激活隐藏的工作表。如下面的代码:

Sub Test3()
       ActiveWorkbook.Sheets(2).Visible = False '隐藏工作表
       ActiveWorkbook.Sheets(2).Select          '无法选择隐藏的工作表,产生错误
    End Sub
    Sub Test4()
       ActiveWorkbook.Sheets(2).Visible = False  '隐藏工作表
       ActiveWorkbook.Sheets(2).Activate         '可以激活隐藏的工作表
    End Sub

2.对于“Range”对象

首先说明一下活动单元格和选定区域:

某个选定的区域中只能有一个活动单元格,通常活动单元格位于所选区域的左上角。如下图我们选择了A1:G10区域,A1单元格是高亮显示的,A1单元格就是活动单元格。当我们用键盘进行输入的时候,键入的内容将被输入到活动单元格中。

如果我们要让区域中的其他单元格变成活动单元格,可以按Tab键,将使区域中当前活动单元格右方的单元格变为活动单元格,而按Shift+Tab则方向相反;或按Enter键,将使区域中当前活动单元格下方的单元格变为活动单元格,而按Shift+Enter则方向相反。

“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。 如果我们用下面的代码试图激活某个区域:

Range("d4:e5").Activate

Excel将仅仅激活D4单元格,但同时选择了D4:E5区域。下面的代码首先选择A1:E10区域,同时激活D4单元格:

Sub test()
       Range("a1:e10").Select
       Range("d4:e5").Activate
    End Sub

而对于下面的代码:

Sub test()
       Range("a1:e10").Select
       Range("f11:g15").Activate
    End Sub

由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。

由上可见,当我们要选择某个区域时最好用Select方法,而不用Activate方法,否则可能会出现意想不到的错误。

VBA中Activate方法和Select方法的区别相关推荐

  1. python predict_对Keras中predict()方法和predict_classes()方法的区别说明

    1 predict()方法 当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标 ...

  2. java——Scanner中nextLine()方法和next()方法的区别

    遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用Scanner函数时,在字符串中加入空格,结果空格后面的东西没有输出来(/尴尬),不多说直接上代码: import java.util.Sc ...

  3. ExtJS中listener方法和handler方法的区别

    listener方法和handler方法的区别在文档中的说明的太玄乎了,看不懂 listeners监听能够对一个click Event事件添加任意多个的事件响应处理函数 而handler处理只能够通过 ...

  4. Keras中predict()方法和predict_classes()方法的区别

    正如上篇博客中所讲,在Keras框架下执行深度学习任务时,一般会先根据训练数据集训练出模型,然后拿训练好的模型到生产环境(测试集)中部署并生产.以分类问题为例,当训练好了分类模型之后,我们要用这个模型 ...

  5. jquery中prop()方法和attr()方法的区别浅析

    引用:http://www.jb51.net/article/41170.htm 官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该 ...

  6. Scanner中nextLine()方法和next()方法的区别

    我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效 ...

  7. Hibernate中get方法和load方法的区别

    一.get和load方法都是根据id去获得对应数据的,但是获得机制不同:如果使用get方法,hibernate会去确认该id对应的数据是否存在,它首先会去session中去查询(session缓存其实 ...

  8. jQuery中find()方法和filter()方法的区别

    jQuery官方的API这样说明filter和find函数: filter(selector):Description: Reduce the set of matched elements to t ...

  9. Pytorch中view()方法和resize()方法的区别

    1.view() 通过tensor.view方法可以调整tensor的形状,但必须保证调整前后元素总数一致.view不会修改自身的数据,返回的新tensor与源tensor共享内存,即更改其中一个,另 ...

最新文章

  1. expect安装使用
  2. twisted应用中异步回调的方式及线程的应用
  3. DCMTK:将轮廓数据添加到RT结构集中的测试程序
  4. springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现
  5. C#连接Excel和Access(包括2003和2007版)方法总结
  6. vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
  7. 16 MM配置-BP业务伙伴-定义屏幕格式的账户组(供应商)
  8. Python实现堆排序
  9. 记一次SVN误删除操作和Tomcat版本与操作系统不兼容 问题分析及解决的过程
  10. 图的长宽_新车|官方预告图发布,外观大变样,三菱新欧蓝德明年2月发布
  11. 【算法】验证哥德巴赫猜想
  12. springboot接口返回封装与异常控制
  13. 局域网上传文件_3分钟内Windows网盘搭建并实现局域网文件共享
  14. 安装程序提示本地计算机已存在源,安装卡巴斯基出现“不能访问Window Installer服务”...
  15. 视频教程-QT教程--入门实战视频精讲-C/C++
  16. 基于WebSocket实现网页聊天室
  17. Python入门习题大全——人生的不同阶段
  18. QT安装段错误segmentation fault
  19. 关于sql语句中where条件内添加case when的问题
  20. python扫雷总结与体会_扫雷拓展训练心得体会

热门文章

  1. mac外接显示器经常没反应
  2. Angry Birds总结回顾
  3. 爱礼(爱的礼物——谐音爱你),开源项目送给你对象的爱的礼物
  4. Springboot 整合Mybatis-plus小测试
  5. 在线培训人员注册信息管理系统软件测试说明书范例,教务管理系统测试用例.doc...
  6. java最大公约数最小公倍数的逆问题
  7. 自考计算机英语答题技巧,2017年自考《英语》各题型答题技巧总结
  8. 速卖通流量篇“如何通过粉丝营销引爆私域流量”
  9. android apk u盘升级_Android应用的自动升级、更新模块的实现
  10. 用html做一个豆瓣网阅读页面,使用JS制作豆瓣读书报告的长图片