VBA基础包括
根据数值类型可以分为数值,字符,日期,布尔等类型;
数值类型的数据用来存储数字,比如 1.2 ,10, 1000,
字符类型用来存储字符串,比如 helloworld,你好
布尔类型,就是 true/false
语法:Dim varname as varType
// varname 是变量名 vartype是变量类型 比如
``
Dim myage as Integer
// 声明一个整数变量
Dim myname as String
// 声明一个字符串变量
myage = 18
// 整数赋值
myname = "Eric"
// 字符串赋值
m = 12
n = 36
x = m * n
全局变量:Public varname as type
局部变量:Dim varname as type
全局变量在整个文件内都可用,局部变量只在函数内部可以使用
Public Myage as Integer // 全局变量
Myage = 18
Sub MyFunc()
Dim myname As String // 局部变量
myname = "Eric"
Worksheets(1).Range("A1").Value = myname //使用局部变量
Worksheets(1).Range("A2").Value = Myage // 使用全局变量
End Sub
我们知道Excel表格默认有三个Sheet(sheet1,sheet2,sheet3)
那我们在VBA 程序里如何取得这三个Sheet呢? 演示如下,为了方便演示,我在每个sheet的A1 单元格分别填写不同的内容 “A in sheet1”,“B in sheet2”
下面我写一段代码,使用下标的方式来定位sheet,分别从sheet1 和 sheet2 里取A1 单元格里的内容
Sub mytest()
Dim MyString As String
MyString = Worksheets(1).Range("A1").Value
MsgBox (MyString)
MyString = Worksheets(2).Range("A1").Value
MsgBox (MyString)
MyString = Worksheets(3).Range("A1").Value
MsgBox (MyString)
End Sub
在Excel 表格里找到宏,查看宏,点击执行,
分别取出A1 的值,并用弹窗的形式展示出来。
除了使用数字下标1,2,3 分别获取sheet1,sheet2,
MyString = Worksheets(1).Range("A1").Value
。
也可以直接指定名称来定位sheet,比如:
MyString = Worksheets("sheet1").Range("A1").Value
MyString = Worksheets("sheet2").Range("A1").Value
也可以达到同样的效果。
自己可以试验一下
如同在编辑栏里直接写SUM(A1,B1) 就可以直接使 A1 和B1 单元格的内容相加,VBA里也可以直接使用SUM函数。
Sub mytest()
Dim MySum As Integer
a1 = Range("A1") // 获取A1的值
b1 = Range("B1") // 获取B1的值
MySum = Application.WorksheetFunction.Sum(a1, b1)
Worksheets("sheet1").Range("C1").Value = MySum
End Sub
在Excel 表格运行
另外其他函数可以参考官方文档: https://docs.microsoft.com/zh-cn/office/vba/api/excel.worksheetfunction
https://docs.microsoft.com/zh-cn/office/vba/api/overview/excel