zoukankan      html  css  js  c++  java
  • 步步为营-108-Excel-一、重识Excel

      Excel用了这么久,你真的了解她吗?通过这次系列课程,可进一步了解。

    一、宏

    1.1 什么是宏

    一组动作的集合

    1.2 加载宏选项卡

    Excel=》偏好设置=》视图=》开发工具选项卡

    1.3 录制宏

    实例一:有一个年度统计报表(12个sheet内容格式一致),需要做以下修改 

    1 删除CDE列

    2 将金额放在日期列的后面

    3 筛选数量大于200的数据

     操作步骤

    1:点击【开发工具】选择(录制宏)确定

     

    2:接下来就是常规的Excel操作,平时啥样,录制宏的时候也一样

    3:三个需求操作完成后,返回到【开发工具】(停止录制)

    4:使用宏:我们再去其他的sheet中,【开发工具】(宏)选中我们想要运行的宏,点击「运行」按钮即可

     

    实例二:相对引用与绝对引用

    需求:一列按照时间顺序排列的日期,把设置周一的背景色

    操作:

    1:先选中首个周一(A4)的单元格【开发工具】(录制宏),设置快捷

     2:设置相对引用

     3:常规操作设置背景色

    4:选中下一个7天即A11单元格

    5:结束宏的录制

    6:快捷键操作

     

    二、VBA

    Sub 弘一()
    '
    ' 弘一 Macro
    ' 宏由 A02985 录制,时间: 2020/08/04
    '
    
    '
        With Selection.Interior
            .Pattern = xlPatternSolid
            .ThemeColor = 5
            .TintAndShade = 0
        End With
        ActiveCell.Offset(7, 0).Range("A1").Select
    End Sub
    改颜色源码

    三、VBA中的For循环

    作用:执行重复操作

    实例一:把原来的改颜色功能执行50次

    Sub 弘一()
    '
    ' 弘一 Macro
    ' 宏由 A02985 录制,时间: 2020/08/04
    '
    
    '
    
    Dim shu As Integer
    For shu = 1 To 50
        With Selection.Interior
            .Pattern = xlPatternSolid
            .ThemeColor = 5
            .TintAndShade = 0
        End With
        ActiveCell.Offset(7, 0).Range("A1").Select
    Next
    End Sub
    自动循环50次

    实例二:把工资表与工资条之间的转换

    Sub gzt()
    '
    ' 宏1 宏
    '
    
    '
        Rows("1:1").Select
        Dim i As Integer
    For i = 1 To 10
        Selection.Copy
        ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
        Selection.Insert Shift:=x1Down
    Next
    End Sub
    
    Sub gzb()
    
    
    Dim i As Integer
    Selection.Delete Shift:=xlUp
    For i = 1 To 9
        ActiveCell.Offset(-2, 0).Rows("1:1").EntireRow.Select
        Selection.Delete Shift:=xlUp
    Next
    End Sub
    工资条与工资表

    添加按钮,并设置按钮属性

    四、VBA中的IF循环

    作用:执行条件判断操作

    实例一:根据【性别】设置【称呼】、根据【专业类】生成【专业代号】、删除【姓名】为空的列

    1:数据原型

     2:编写vba代码

    Sub ch()
        Dim i As Integer
        
        For i = 26 To 1 Step -1
            '处理性别
            If Range("e" & i) = "" Then
                Range("f" & i) = "先生"
            Else
                Range("f" & i) = "女士"
            End If
            
            '处理专业代号
            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
            
            '删除姓名为空的数据行
            If Range("D" & i) = "" Then
                Range("D" & i).Select
                Selection.EntireRow.Delete
                
            End If
        Next
    End Sub
    vba

    3:数据处理后

     

    实例二:把工资表与工资条之间的转换

    Sub toGZT()
     
        Dim curI As Integer
        Dim nextA As String
        nextA = Range("A" & 1)
        curI = 3
        While nextA <> ""
            '如果下一个A单元格不等于空
            Rows("1:1").Select '选中第一行
            Selection.Copy      '复制
            Rows(curI & ":" & curI).Select '选中当前行
            Selection.Insert Shift:=xlShiftDown '粘贴
            ActiveSheet.Select Replace:=False
            curI = curI + 2                '向下移动两行
            nextA = Range("A" & curI)
        Wend
        
    End Sub
    
    Sub toXZB()
     
        Dim curI As Integer
        Dim nextA As String
        nextA = Range("A" & 1)
        curI = 3
        While nextA = "姓名"
            '如果下一个单元格有值“姓名”
            Range("A" & curI).Select  '选中
            Selection.EntireRow.Delete '删除
            curI = curI + 1            '单元格下移
            nextA = Range("A" & curI)
        Wend
        
    End Sub
    vba

    五、语法小结

    Sub ABC() ...... End Sub

    Dim i 

    For i =1 to 10 ..... Next

    IF ...... Then ..... Else End IF

    IF ...... Then ..... ElseIF

    Range("A"&i)

    And/Or

    step - 1

    Exitfor

  • 相关阅读:
    面试
    二叉树- 二叉树直径
    排序算法
    JAVA编程
    JAVA编程
    JAVA中break和continue的区别
    HTTP的序列化和反序列化
    PL/SQL基础
    G. Game Design
    hdu 6703 array
  • 原文地址:https://www.cnblogs.com/YK2012/p/13424267.html
Copyright © 2011-2022 走看看