基于VBA编写的信息管理系统

你知道吗?EXCEL结合VBA可以实现界面清晰简单的信息管理系统,它不一定要是软件,也不需要考虑安装,只要你有Office办公软件,它就能帮你实现超级实用的信息管理。

界面如下:

表格1是功能界面

 表格二是数据库,内容可以无限添加

实现代码如下:

Private Sub CommandButton1_Click()
'处理未指定料号的查询
    If Len(TextBox1.Value) = 0 Then
        MsgBox ("请先指定需要查询的料号!")
        Exit Sub
    End If
 '以料号作为查询条件,获取指定的料号信息所在的行
    Dim row As Long
    row = FindNameRow()
   
    '处理查询不存在的情形
    If row < 1 Then
        MsgBox ("无法查询到料号为" & """" & TextBox1.Value & """" & "的信息,请确认后再试!")
        Exit Sub
    End If

    'item指定要填充的字段名,col代表查找该字段所在的列(数字,第几列)
    Dim item As String, col As Integer
    col = FindItemColumn(Worksheets("sheet1").Range("B21").Value)
    Worksheets("sheet1").Range("B22").Value = ThisWorkbook.Sheets(2).Cells(row, col).Value
    col = FindItemColumn(Worksheets("sheet1").Range("C21").Value)
    Worksheets("sheet1").Range("C22").Value = ThisWorkbook.Sheets(2).Cells(row, col).Value
    col = FindItemColumn(Worksheets("sheet1").Range("D21").Value)
    Worksheets("sheet1").Range("D22").Value = ThisWorkbook.Sheets(2).Cells(row, col).Value
    
End Sub
'查找指定姓名所在的行
Function FindNameRow()

    '已使用行数
    Dim num As Integer
    num = ThisWorkbook.Sheets(2).Range("A1").CurrentRegion.Rows.Count

    '依次测试每个单元格的值,如果是指定值,则返回指定值所在的行
    Dim rng As Range, row As Long
    For Each rng In ThisWorkbook.Sheets(2).Range("A2:A" & num)
        If rng.Value = TextBox1.Value Then
            row = rng.row
            Exit For
        End If
    Next

    FindNameRow = row

End Function

'查找各字段所在的列(数值,第几列)
Function FindItemColumn(item)

    '已使用区域列数
    Dim num As Integer
    num = ThisWorkbook.Sheets(2).Range("A1").CurrentRegion.Columns.Count

    '依次测试包含字段名的单元格区域,如果是指定字段名,则返回所在的列(数值,第几列)
    Dim rng As Range, col As Integer
    For Each rng In ThisWorkbook.Sheets(2).Range("A1", ThisWorkbook.Sheets(2).Cells(1, num))
        If rng.Value = item Then
            col = rng.Column
            Exit For
        End If
    Next

    FindItemColumn = col

End Function

Private Sub CommandButton2_Click()
TextBox1.Text = ""
Range("B22:K22").ClearContents
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then CommandButton1_Click

End Sub
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的豆包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值