Excel中VBA编程学习笔记(一)「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
1、注释及编码规则
注释:
- 单引号:可以位于句子结尾或者单独一行;
- Rem:单独一行
编码规则:
- 如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。
- 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。
- 如果在同一行写多条语句,语句 间 要用冒号“:”隔开。例如:
Form1.Width = 300 : Form1.Caption = “VB!”
- 如果一条语句在一行写不下,可以分多行写,续航符为:一个空格后面跟一个下划线“_”。
例如:Address = “天津市河北工业大学” + _
“现代化教学中心” + _
“计算机技术基础教研室”
2、类模块
在Excel VBA中类模块就相当于一个类,类模块的名字就是类名。
下面为定义的一个类Class1,并且有些基本属性及一个初始化函数
【例】
下面定义一个类Class1,
Private name, sex As String
Private age As Integer
Public rng As Range
Sub class_initialize() ‘初始化
sex = “男”
age = 20
End Sub
Public Property Get GetName() As Variant
GetName = name
End Property
Public Property Get GetSex() As Variant
GetSex = sex
End Property
Public Property Get GetAge() As Integer
GetAge = age
End Property
Public Property Let SetName(newName As String)
name = newName
End Property
Public Property Let SetSex(newSex As String)
sex = newSex
End Property
Public Property Let SetAge(newAge As Integer)
age = newAge
End Property
Public Function GetInfo() As String
GetInfo = “姓名:” & name & “;性别:” & sex & “;年龄:” & age
End Function
Public Property Get maxNumer(num As Integer) As Integer
maxNumber = Application.WorksheetFunction.Max(num, age)
End Property
Public Property Set SetBckColor(myRng As Range)
myRng.Interior.ColorIndex = 3
End Property
新建一个过程
Sub test()
Set tmp = New Class1
Debug.Print tmp.GetAge() ’20
tmp.SetName = “张三”
tmp.SetAge = 23
Debug.Print tmp.GetInfo() ‘姓名:张三;性别:男;年龄:23
Set tmp.SetBckColor = Sheet3.Rows(1) ‘将Sheet3的第一行背景色设置为红色
End Sub
3、新建对象及常用对象
新建一个模块。
Option Explicit
Sub a()
Dim ab As New Class1
Debug.Print ab.x
End Sub
不能使用NEW创建的对象
不能使用NEW创建 | 不允许的代码例子 |
---|---|
基本数据类型的变量 | Dim X As New String |
任何一般对象类型的变量 | Dim X As New Control |
任何特定控件类型的变量 | Dim X As New ListBox |
任何特定控件的变量 | Dim X As New lstName |
常用对象
对象名称 | 代表事项 |
---|---|
Application对象 | 代表整个Excel应用程序 |
Debug对象 | 在运行时将输出发送到立即窗口 |
Name对象 | 代表单元格区域的定义名称 |
Dialog对象 | 代表内置的Excel对话框 |
Range集合对象 | 代表某一单元格、某一行、某一列、某一选定区域 |
Window对象 | 代表一个窗口 |
Windows集合对象 | 代表Excel中所有Window对象的集合 |
Chart对象 | 工作薄中的图标 |
Charts集合对象 | 指定的或者活动的工作薄中所有的图表的集合 |
Sheets集合对象 | 指定或活动工作薄中所有工作表的集合,Sheets集合可以包括Chart对象或WordSheet对象 |
WorkBook对象 | 代表Excel工作薄 |
WorkSheet对象 | 代表一张工作表 |
Shape对象 | 代表图层中的对象,例如自选图形、任意多边形、OLE对象或图片 |
AutoFIle对象 | 代表指定工作表的自动筛选 |
Filters集合对象 | 由多个Fileter对象组成的集合,这些对象代表自动筛选区域内的所有的筛选 |
Filter对象 | 代表单个列的筛选 |
4、设置窗体尺寸及位置
以下两种方式均可:
5、声明变量及常量
变量声明格式如下:
Dim|Private|Public|Static <变量1> as <类型1> [,<变量2> as <类型2> …..]
关键字 | 使用范围 |
---|---|
Dim | 可以用在任何场合定义变量 |
Private | 可以用于定义窗体级或模块级,不能在过程中使用 |
Public | 用于窗体级或者模块级定义全局变量,不能在过程内部使用 |
Static | 只能在过程内部使用,用于定义静态的局部变量 |
注:没有是上面的关键字来明确的变量叫做隐式变量,系统自动分配的数据类型为Variant,如DaysLeft=100.
Private name As String ‘声明全局变量
Private Sub A()
Dim M As Range ‘声明局部变量
Set M = Sheet1.Range(“A1”)
M.Value = InputBox(“请输入:”)
name = Sheet1.Range(“A1”).Value
MsgBox (“你输入的内容” & name)
End Sub
声明常量
Private Sub A()
Const pi As Integer = 3.1415926
Dim area As Double
area = pi * 2 * 2
Debug.Print (“面积为:” & area)
End Sub
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137700.html原文链接:https://javaforall.cn
相关文章
- 在线Excel存储方案
- excel宏 java,Microsoft Excel宏运行Java程序
- jxls能把html转成excel吗,如何用XLSTransformer生成excel文件?jxls的使用方法
- 利用模板导出文件(一)之XLSTransformer导出excel文件
- excel转换sql
- excel批量导入图片 宏_怎么启用excel的宏
- excel导入mysql代码_EXCEL导入Mysql方法「建议收藏」
- Excel VBA 通过字典进行数据计数/求和
- Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图
- 数据库快速实现Excel导入MySQL数据库(excel导入mysql)
- java excel转csv详解编程语言
- 文件Linux下如何打开Excel文件(linux打开excel)
- 数据快速导出Excel:从MySQL中快速获取数据(excel导出mysql)
- 快速实现Excel数据导入MySQL的方法(excel数据导入mysql)
- 快速安装Excel:Linux用户指南(linux安装excel)
- SQL Server数据导出到Excel的方法(sqlserver导出到excel)
- 极速提升业务效率:利用Excel快速导入Oracle数据库(excel数据导入oracle)
- MySQL读取Excel文件的简单方法(mysql读取excel)
- 步骤简单!轻松实现SQL Server导入Excel操作(sqlserver导入excel)
- 将Excel表格数据导入MySQL数据库(excel到mysql)
- 实现Redis数据批量导出至Excel(redis 转excel)
- 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
- Drupal读取Excel并导入数据库实例
- Yii中使用PHPExcel导出Excel的方法