如何写VBA代码
打开VBA编辑,插入模块,在模块下编写
![]()
Range锁定单元格对象
连续输出1到10
Sub an()
For i = 1 To 10
Range("a" & i) = i
Next
End Sub
相隔7个输出 -- step
Sub an()
For i = 1 To 20 Step 7
Range("a" & i) = i
Next
End Sub
VBA中if的写法
if 条件1 then
结果1
elseif 条件2 (elseif可省)
结果2
else
结果3
endif
if判断的使用
用if函数的表达方法:IF(B2="理科","LK",IF(B2="文科","WK","CJ"))
Sub te1()
'专业处理
Dim i As Integer
For i = 2 To 26
If Range("b" & i) = "理工" Then
Range("c" & i) = "LG"
ElseIf Range("b" & i) = "文科" Then
Range("c" & i) = "WK"
Else
Range("c" & i) = "CJ"
End If
Next
End Sub
借助if删除空行
此处需要考虑一个逻辑问题,若从头开始删除,比如删除第二行,第三行向上移动会变成第二行,所以如果第二第三行是空行的情况,会出现第三行漏删。删除行的代码可通过录制宏后获得
Sub shan()
'删除空行
For j = 26 To 1 Step -1
If Range("d" & j) = "" Then
Rows(j).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub
借助for和if实现工资条的生成
先模拟生成工资条的操作,先是复制第一行,然后从第三行插入。将此处操作录制宏,获得代码 。
需要添加判断,若代码执行到下一行为空时,退出for循环,此处代码应添加在插入工资条代码的前面
Sub 工资条()
Dim i As Integer
For i = 3 To 100 Step 2
If Range("A" & i) = "" Then
Exit For
End If
Range("1:1").Select
Selection.Copy
Range("A" & i).Select
Selection.Insert Shift:=xlDown
Next
End Sub
工资条的删除
Sub 删除()
Dim i As Integer
For i = 3 To 100
If Range("A" & i) = "" Then
Exit For
End If
Rows(i).Select
Selection.Delete Shift:=xlUp
Next
End Sub
if中表示数值范围的写法
如 3500 ~ 5000,实际上就是借助and
if a > 3500 and a < 5000 then
...
endif
网友评论