Excel实现电子发票管理

Excel实现电子发票管理

实现自动保存

  • 启用宏

    文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 宏设置 -> 启用宏

    Excel实现电子发票管理_第1张图片

  • 关闭保存个人信息

    文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 隐私选项 -> 保存时从文件属性中删除个人信息

    Excel实现电子发票管理_第2张图片

  • 按alt + f11进入VBA代码编辑页面,双击ThisWorkbook,输入代码

    Excel实现电子发票管理_第3张图片

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
        ThisWorkbook.Save
        
    End Sub
    

    此时就能实现自动保存的功能

实现输入一次后无法更改,除授权人外其他人无权修改

原理是设置两个状态 “用户态” 和 “特权态”。用户态下无法选中非空单元格,特权态下可以选中单元格。进入特权态需要运行一段特殊代码

  • 右键单击待编辑的工作表,选择查看代码

    Excel实现电子发票管理_第4张图片

  • 在弹出的空白窗口中粘贴如下代码

    Excel实现电子发票管理_第5张图片

    Public bl As Boolean
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If bl = False Then
            If Target <> "" Then
                Cells(Target.Row + 1, Target.Column).Select
            Else
                Exit Sub
            End If
        Else
            Exit Sub
        End If
    End Sub
    
    Sub tt()
        If InputBox("密码") = "123" Then
            bl = True
        Else
            MsgBox "密码错误,不能修改"
        End If
    End Sub
    
    Sub pp()
        bl = False
    End Sub
    
    
  • 在表单中添加调用宏的按钮

    首先找到excel中的开发工具选项卡

    Excel实现电子发票管理_第6张图片

    如果没有的话,在文件 -> 选项 -> 自定义功能区将开发工具勾选上

    Excel实现电子发票管理_第7张图片

    接下来添加按钮

    Excel实现电子发票管理_第8张图片

    使用鼠标绘制出按钮的大小后,出现如下菜单

    Excel实现电子发票管理_第9张图片

    tt 和 pp分别是之前代码中声明好的两个函数,tt用于进入 “特权态”,pp用于返回 “用户态”

    Excel实现电子发票管理_第10张图片

    输入密码后可以修改

    Excel实现电子发票管理_第11张图片

    返回用户模式后不能选中非空单元格

    Excel实现电子发票管理_第12张图片

    至此完成了自动保存和单次写入,特权修改的功能

查重逻辑

利用excel自带的公式即可,需要在可能输入的地方拖一下,自动填充上

=IF(COUNTIF(C:C,C4)>1,IF(COUNTIF(F:F,F4)>1,"重复报销","发票号重复"),"")

完成后的样子

要在可能输入的地方拖一下,自动填充上

=IF(COUNTIF(C:C,C4)>1,IF(COUNTIF(F:F,F4)>1,"重复报销","发票号重复"),"")

完成后的样子

Excel实现电子发票管理_第13张图片

你可能感兴趣的:(excel)