加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB 编写的 文档管理系统

发布时间:2020-12-17 07:47:10 所属栏目:百科 来源:网络整理
导读:首先还是看一下:要实现的用户的界面: 看到EXCEL 是从B3 开始扫描的: 所以用 alt + F11 打开程序就发现: 看到sheet1 中的代码: Option Explicit '**************************************** '“借阅人”单元格内容有改变时对应事件代码 '***************

首先还是看一下:要实现的用户的界面:


看到EXCEL 是从B3 开始扫描的:

所以用 alt + F11 打开程序就发现:


看到sheet1 中的代码:

Option Explicit

'****************************************

'“借阅人”单元格内容有改变时对应事件代码

'****************************************

Private Sub Worksheet_Change(ByVal TargetAs Range)

Dim I As Long,J As Integer

Dim strTemp1 As String

Dim Bfind As Boolean

J= Target.Column '取得内容改变单元格的列号

'判断用户所选择单元格区域,如果不只选择了一个单元格,或者所选择的

'单元格列不是“借阅人”列,或者所选择的单元格内容为空,都可以中断

'执行过程

If Target.Count > 1 Or J <> 11 Then

Exit Sub

Else

'不能并列3条件,是因为单元格数量大于1时,Target.Value会报错

If Trim(Target.Value) = "" Then

'清空借出日期、归还日期、借阅人的信息

ActiveSheet.Range(Target.Offset(0,-2).Address & ":" &Target.Address).Value = ""

Exit Sub

End If

End If

'取得“借阅人”列对应的同一行、前七列单元格的数值,即“项目编号”

strTemp1 = Trim(Target.Offset(0,-7).Value)

'取得“项目编号”中包含的项目密级的信息

strTemp1 = Mid(strTemp1,4,1)

'将员工可以借阅项目资料的权限设置表赋予变量“wkSheet1”

Set wkSheet1 = ThisWorkbook.Worksheets("借阅权限")

Bfind = False

'循环查找借阅人可以借阅项目资料的密级

For I = 2 To wkSheet1.Range("a1048576").End(xlUp).Row

If Trim(wkSheet1.Cells(I,2).Value) = Trim(Target.Value) Then

'如果项目编号中包含的密级大于借阅人可以借阅的密级,则借阅人

'不能借阅该项目资料,给出警示,并将借阅日期、归还日期、借阅人

'3个单元格清空

Bfind = True

If strTemp1 > wkSheet1.Cells(I,4) Then

'警示借阅权限不够

MsgBox "该员工没有借阅此项目资料的权限!"

'清空借阅日期单元格

Target.Offset(0,-2).Value =""

'清空归还日期单元格

Target.Offset(0,-1).Value =""

'清空借阅人单元格

Target.Value = ""

Exit For '跳出循环

End If

End If

Next

If Bfind = False Then

'警示借阅权限不够

MsgBox "该员工没有借阅此项目资料的权限!"

Target.Value = ""

End If

End Sub

顺便看一下sheet2 中的代码:

Option Explicit

Private Sub Worksheet_Change(ByVal TargetAs Range)

End Sub

Private Sub Worksheet_SelectionChange(ByValTarget As Range)

End Sub

好,下面看一下操作方法:

先把 excel 中的table copy一下:


Copy 到一个新的 excel 2007 中:

再在第一行 insert 文本:


写好:”已归档”,“未归档”,“ 全部显示” 等。

再右键这个图标:


点击指定宏:


这个时候,你就要去 insert 的模板中添加刚才添加的 模板:



下面列一下全部的“模板” 中的代码:

Option Explicit

Public wkSheet1 As Worksheet

'****************************************

'单击“已归档”按钮对应过程代码

'****************************************

Sub 已归档_单击()

'关闭自动筛选

ActiveSheet.AutoFilterMode = False

Range("B3").Select '选择表格的左上角单元格

Selection.AutoFilter '给单元格设置自动筛选

'筛选出“已归档”列不为空的单元格

Selection.AutoFilter Field:=6,Criteria1:="<>"

End Sub

'****************************************

'单击“未归还”按钮对应过程代码

'****************************************

Sub 未归还_单击()

'关闭自动筛选

ActiveSheet.AutoFilterMode = False

Range("B3").Select '选择表格的左上角单元格

Selection.AutoFilter '给单元格设置自动筛选

'筛选出“借出日期”列不为空的单元格

Selection.AutoFilter Field:=8,Criteria1:="<>"

'筛选出“归还日期”列为空的单元格

Selection.AutoFilter Field:=9,Criteria1:="="

End Sub

'****************************************

'单击“超期未归还”按钮对应过程代码

'****************************************

Sub 超期未归还_单击()

'关闭自动筛选

ActiveSheet.AutoFilterMode = False

Range("B3").Select '选择表格的左上角单元格

Selection.AutoFilter '给单元格设置自动筛选

'筛选出“借出日期”列中单元格数值小于当前日期减去30天对应的日期

'即可得到借阅期限超出30天的借阅记录

Selection.AutoFilter Field:=8,Criteria1:="<" & Now -30 & ""

'筛选出“归还日期”列为空的单元格

Selection.AutoFilter Field:=9,Criteria1:="="

End Sub

'****************************************

'单击“全部显示”按钮对应过程代码

'****************************************

Sub 全部显示_单击()

'关闭自动筛选

ActiveSheet.AutoFilterMode = False

End Sub

'****************************************

'单击“未归档”按钮对应过程代码

'****************************************

Sub 未归档_单击()

'关闭自动筛选

ActiveSheet.AutoFilterMode = False

Range("B3").Select '选择表格的左上角单元格

Selection.AutoFilter '给单元格设置自动筛选

'筛选出“未归档”列不为空的单元格

Selection.AutoFilter Field:=6,Criteria1:="="

End Sub

另外说明一下:

还有一个sheet:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读