Excel与VBA简单操作

在最近的工作中遇到很复杂的Excel的处理,仅仅用公式根本无法完成,百度搞了一天多,现在记录一下用到的语法;以防以后忘记,不喜勿喷。

1. Excel和VBA

1.1 vba如何编写

1、首先打开Excel,右键点击sheet,选择查看代码,可以打开Excel编写代码的页面,语言采用vba语言
Excel与VBA简单操作
2、如下图,为编辑器页面的介绍

Excel与VBA简单操作

1.2 代码同文件的保存

当我们完成代码逻辑之后,保存并推出,会发现代码并没有保存,这是因为Excel默认额.xlsx格式不允许保存代码;如果想吧代码一起板寸,我们可以将文件另存为启用宏的文件,启用宏的文件后缀有(.xlsm.xltm.xlam)

1.3 修改该文档格式后引发的保存提示

当我们修改启用宏以后,无论保存代码还是保存文件内容,都会出现很多提示;我们要怎么关闭他们呢???

  1. 点击文件 --> 选项
    Excel与VBA简单操作
  2. 进入设置选择信任中心 -> 信任中心设置
    Excel与VBA简单操作
  3. 取消保存时从文件属性中删除个人星系,然后保存。
    Excel与VBA简单操作

2. VBA语法

2.1 变量声明及赋值

声明格式为:

	Dim 变量名称 As 变量类型

例如:

	Dim i As Integer	// 声明一个数字变量
	Dim str As String	// 声明一个字符串变量
	i = 3				// 数字赋值
	str = "hello world!"// 字符串赋值

VBA数据类型:

数据类型 定义符号 简写 备注
字符串 String $
整型数字 Integer % -32768~32767
长整型数字 Long & -2147483648~2147483647
单精度浮点型数字 Single ! 精度为6
双精度浮点型数字 Double # 精度为14
日期型 Date yyyy/m/d
布尔型 Boolean
变体型 Variant 万用的类型,尽量避免使用
对象型 Object 没有深究
枚举型

枚举类型数据定义格式:

	Public|Private Enum 变量名
		成员1[=常数表达式1]
		成员1[=常数表达式1]
		··· ···
	End Enum

例如:

	Public Enum WorkDays
		星期日
		星期一
		星期二
		星期三
		星期四
		星期五
		星期六
	End Enum

2.2 if-else结构

	If bool Then
		// 代码...
	ElseIf ······ Then
		// 代码...
	Else
		// 代码...
	End If

2.3 循环结构

	// while循环
	Do While ······
		// 代码...
	Loop

	// for循环
	For i = 0 To 100 Step 1
		// 代码...
		Exit For		// 跳出循环
	Next i

2.4 注释

VBA里的单行注释以单引号’标识

3. 常用功能

3.1 获取表格数据

Sheets('sheet名')		// 获取表格的sheet对象
Sheets(i)				// 获取第i个sheet表格对象
Sheet1.Rows(i)			// 获取表格中第i行数据
Sheet1.Columns(j)		// 获取表格中第j列数据
Sheet1.Range("a1:b60")	// 获取表格中一块数据

Sheet1.UsedRange.Rows.Count		// 获取sheet表中已用行数
Sheet1.UsedRange.Columns.Count	// 获取sheet表中已用列数

ActiveWorkbook.Worksheets.count	// 获取当前Excel的sheet表格的个数
ActiveSheet.Index				// 获取当前sheet表的位置

更多方法参考