本篇指在为excel内写vb脚本提供指导和入门
数据类型
1.只有一种variant类型,根据上下文判定是数字还是字符串
var的子类型有以下几种:
类型 | 解释 |
---|---|
Empty | 未初始化都是这个值,数值变量,值为0,字符串为"" |
Null | 无任何数据的var |
Boolean | true或者false |
Byte | 包含0到255的整数 |
Integer | -32768到32768 |
Currency | -922337203685477.5808 到 922337203685477.5808 |
Long | -2147483648 到 2147483648 |
Single | 单精度浮点数,-3402823E38 到 -1.401298E-45(负数),1.401298E-45 到 3402823E38(整数) |
Double | 双精度浮点数,-1.79769313486232E308 到 -4.94065645841247E-324(负数) |
Date(Time) | 公元100年1月1人到公元9999年12月31日 |
String | 可变长字符串,最大长度20亿个字符 |
Object | 包含对象 |
Error | 包含错误号 |
2.定义变量的方式
Dim var1 As String '定义一个名为var1的字符串
var1 = "assignment" '变量的赋值
Excel 相关的代码操作
'1)弹窗
MsgBox "一个弹窗" '弹窗信息
'2)单元格操作
'第一个工作簿的第一行第一列赋值
Cell(1,2) ' 1:行 2:列
'3)单元格定位三种方式
Worksheets(1).Cells(1, 1).Value = "aa" '指定工作簿的指定位置,绝对定位
Range("A1").Value = "cc" '当前活动工作簿的指定位置,当前活动簿内的绝对定位
ActiveCell.Cells(1, 1).FormulaR1C1 = "aa" '当前点击处的位置,相对位置
'4)单元格颜色
ActiveCell.Cells(1, 1).Interior.ColorIndex = 3 ' 背景的颜色为3 红色[^1]
'5)设置指定单元格的高度(单位:磅, 0.035cm)
ActiveSheet.Rows(2).RowHeight = 1 / 0.035 ' 第二行高度改为1cm
'6)设置指定单元格的宽度(单位:字符个数)
ActiveSheet.Columns(2).ColumnWidth = 5
'7) 插入公式
'D3单元格公式为=Average(A3:B3)
ActiveSheet.Cells(3, 4).FormulaR1C1 = "=Average(RC[-3]:RC[-2])"
'8) 分页符
' 第8行之前插入分页符(0:取消分页符 1:插入分页符)
ActiveSheet.Rows(8).PageBreak = 1
'取消 第8列之前的分页符
ActiveSheet.columns(8).pagebreak = 0
' 9) 指定边框线宽度
' Borders(边框形状:1-左 2-右 3-顶 4-底 5-\ 6-/)
' 值代表宽度
ActiveSheet.Range("B3:D4").Borders(6).Weight = 2
' 10) 设置第一行(可指定)字体属性
ActiveSheet.Range("B3:D4").Borders(6).Weight = 2
ActiveSheet.Rows(1).Font.Name = "黑体"
ActiveSheet.Rows(1).Font.Color = vbRed
ActiveSheet.Rows(1).Font.Bold = True
ActiveSheet.Rows(1).Font.Underline = True
' 11) 字符串处理
' 计算字符串长度
Len("abcd") ' 4
' 从右开始截取指定长度的字符串
Right("abcd", 3) ' bcd
'从左开始截取指定长度的字符串
Left("abcd", 3) ' abc
'分割字符串:
x = "1,2,3"
split(x, ',')
附1:单元格颜色代码
附2:单元格颜色代码
常数值 | 描述 |
---|---|
vbBlack (H0) | 黑色 |
vbRed (HFF) | 红色 |
vbGreen (HFF00) | 绿色 |
vbYellow (HFFFF) | 黄色 |
vbBlue (HFF0000) | 兰色 |
vbMagenta (HFF00FF) | 洋红 |
vbCyan (HFFFF00) | 青色 |
vbWhite (HFFFFFF) | 白色 |
基本流程语句的格式
'1)条件判断( if-elseif-else ):
If i < 10 Then
ActiveCell.Range("A1").FormulaR1C1 = "if"
ElseIf i = 11 Then
ActiveCell.Cells(0, 0).FormulaR1C1 = "elseif"
Else
ActiveCell.Cells(0, 0).FormulaR1C1 = "else"
End If
'2)循环控制( for ):
For excel_column = 1 To 8
' 语句块
Next excel_column
'3)switch case分支:
Select Case d
Case 1
document.write("Sleepy Sunday")
Case 2
document.write("Monday again!")
Case 3
document.write("Just Tuesday!")
Case else
document.write("Super Saturday!!!!")
End Select