Excel 内的 VBS 脚本编程锦策

本篇指在为excel内写vb脚本提供指导和入门

数据类型

1.只有一种variant类型,根据上下文判定是数字还是字符串

var的子类型有以下几种:

类型解释
Empty未初始化都是这个值,数值变量,值为0,字符串为""
Null无任何数据的var
Booleantrue或者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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值