乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel宏教程-VBA|Excel宏与VBA的12个关键知识点(小白进阶篇)

excel宏教程-VBA|Excel宏与VBA的12个关键知识点(小白进阶篇)

作者:乔山办公网日期:

返回目录:excel表格制作

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

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


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


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


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



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事件:



在工程窗口双击工作簿“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命令调用另一个过程)。


相关阅读

  • excel密码保护-Excel中工作簿的保护

  • 乔山办公网excel表格制作
  • 为了保护我们的Excel工作簿不被别人访问、修改、查看,我们可以通过Excel的保护工作簿功能进行保护状态的设定。常用的保护设定有如下几种方法:标记为最终状态、用密码进行加密、保
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网