VBA -- IF

作者: A_rrow | 来源:发表于2019-06-22 23:15 被阅读0次

如何写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

相关文章

网友评论

      本文标题:VBA -- IF

      本文链接:https://www.haomeiwen.com/subject/cyggfctx.html