Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 关于我们
  • 新闻动态
  • Excel资源
  • 招贤纳士

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中国 联系方式
电  话:400-855-3990
邮  编:528400
Email:support@zstm.com
网  址:www.excel-cn.com

当前位置:网站首页 > Excel教程 > Excel VBA
Excel VBA

Excel宏与VBA的12个关键知识点(小白进阶篇)

1 VBA代码编辑器VBE的“模块”

1.1 打开VBE(快捷键是alt+F11)→插入,即可在工程列表的“模块”下插入模块;

1.2 录制的“宏”在工程列表的“模块”下查看;

1.3 自定义sub过程或函数在工程列表的“模块”下编写;

(网上共享的代码复制到此处即可使用)

e1.jpg


2 录了一个宏Marco1后,如何再接着录?

  • 执行Marco1;

  • 录制宏Marco2;

  • 将录制的宏Marco2的内容复制到Marco1后。


3 某列的最后非空行

Dim Lrow As Long

Lrow = Range("B" & Cells.Rows.Count).End(xlUp).Row - 1


4 行号与行数

Range("B2").Value = ActiveCell.Row

Range("B3").Value = Sheets(1).UsedRange.Rows.Count


5 ThisWorkbook和ActiveWorkbook

ThisWorkbook指当前VBA代码所处的Workbook,

ActiveWorkbook指当前活跃的Workbook

相同点:如果VBA代码只对本身工作簿进行操作,则一直是相同的。

不同点:若VBA代码新建或打开了其它工作簿,则往往新建的或刚打开的是Activeworkbook,可以通过 “工作簿名。active”方法激活指定对象。

活动工作表和活动单元格:

如Sheets("Sheet2").Activate即可得到ActiveSheet对象。

如cells(1,1).select,即可得到ActiveCell对象。


6 UsedRange和CurrentRegion

UsedRange和CurrentRegion(不区分大小写)是应用非常频繁的两个属性,Usedrange是工作表的属性,即其使用时应该是sheets(1).usedrange、sheets(2).usedrange这种形式,而currentregion是单元格的属性,即其使用应该是range("A1").currentregion或cells(1,1).CurrentRegion这种形式。

先从字面意思上来看,usedrange就是已经使用的区域的意思,也就是说sheet1.usedrange表示的是sheet1表格中已经使用的区域,怎么理解这个已经使用的区域呢?已经使用的区域就是指鼠标从整个表格最左上角的那个非空单元格一直拖动到整个表格最右下角的那个已经使用过的单元格所选择的区域。而CurrentRegion的字面意思就是当前区域,那个range("A1").currentregion就是指A1单元格当前所在的那个区域,在这里当前所在的区域就是指当前单元格所在的以空行和空列隔开的区域。


7 UsedRange的陷阱

ActiveSheet.UsedRange.select

Selection.Rows.count

如果这个区域末端有些行的数据已使用过,但现在该区域的数据有清空,但还保留了某些单元格格式,则该行也会包括在内。


8 单元格或区域的偏移和重置

8.1 按偏移量重置区域引用

Range("D4").offset(2,-2),相当于是Range("F2");

Range("D4:F6").offset(2,2),相当于是Range("F6:H8");

8.2 按宽度与高度重置区域

Range.Resize(RowSize,ColumnSize),其中参RowSize代表重置后的行数,ColumnSize代表重置后的列数。两个参数皆为可选参数,

Range("D4").Resize(2,2),相当于是Range("D4:F6");


9 Select必须是对活动工作表的操作

worksheets("Name").select

range("A1:B5").select


10 事件过程与自动宏

  • 工作簿事件

  • 工作表事件

  • 窗体事件

  • 控件事件

如建立Workbook_Open事件:

e2.jpg


在工程窗口双击工作簿“ThisWorkbook”对象,对象列表:Workbook→过程列表:Open;会自动产生工作表的Workbook_Open事件的程序外壳。

Excel的事件可以手工启用和禁用:

在VBA中,通过Application对象的EnableEvents属性来控制,将EnableEvents属性设置为True即启用事件,设为False即为禁用事件。完整的代码如下:

Application.EnableEvents=TrueApplication.EnableEvents=False

在Excel2007中,可以使用工作簿级的“Workbook_Open”事件来执行自动宏。不过为了体现兼容性,微软并没有将Auto宏禁用,仍然可以继续使用,但绝不推荐用户继续使用。


11 相关设置

  • 避免因错误而出现的代码中断:On Error Resume next

  • 不要出现警告对话框:Application. Displayalerts = false

  • 禁止屏幕刷新:Application.ScreenUpdating = false

  • 禁用对象事件:Application.EnableEvents=True


12 将较大的过程分为多个过程再调用

VBA允许一个过程存入上千条代码,然而一个过程太庞大不利于阅读和维护,特别是一个代码超过一屏时。此时需要将过程按作用分为多个子过程,再到主过程中调用(都是过程sub,一个过程可以用call命令调用另一个过程)。


点击次数:  更新时间:2017-06-16 17:18:12  【打印此页】  【关闭】
上一条:Excel表格中相同字符批量替换成连续自然数  下一条:Excel 根据某列关键字拆分工作表
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

中山市天鸣科技发展有限公司 版权所有 1999-2020 粤ICP备10043721号

广东省中山市西苑广场富贵阁 528400

QQ:4008553990 电话:0760-88315075

Excel交流网主要交流Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表以及Excel VBA,为网友提供一个最全的Excel交流网站

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2022  www.metinfo.cn