在MS Excel中输入数字进行自动计数

时间:2015-07-25 15:45:11

标签: excel excel-vba vba

我正在寻找一张excel表来自动计算总数。

我正在为考勤管理系统创建一个excel。班上大约有30名学生。他们的注册号码(2011 / V / 01, 2011 / V / 02,....,2011 / V / 30)。他们每天都有很多课程。每个小时由讲师进行出勤(每个学生在签名表上签名)。当出勤表到达部门时,该官员准备计算缺席者。

警官将输入缺席学生的最后一个注册号码(例如:2011 / V / 05为05)。

开始时,总缺席为零。

当他/她在单元格A3中输入最后一个数字并按Enter键时,对应单元格应立即增加1.

在首次出席表中,2011 / V / 02,2011 / V / 05,2011 / V / 07和2011 / V / 13的注册号不存在

(Ex: cell A3 = 02 then cell D3 from 0 to 1).
(Ex: cell A3= 05 then cell D6 from 0 to 1).
(Ex: cell A3 = 07 then cell D8 from 0 to 1).
(Ex: cell A3 = 13 then cell D14 from 0 to 1).


In second attendance sheet 2011/V/03, 2011/V/05, 2011/V/13, 2011/V/16 and 2011/V/21 are absents
(Ex: cell A3 = 03 then cell D4 from 0 to 1).
(Ex: cell A3 = 05 then cell D6 from 1 to 2). (absent in first sheet,so 1 to 2)
(Ex: cell A3 = 13 then cell D14 from 1 to 2). (absent in first sheet,so 1 to 2)
(Ex: cell A3 = 16 then cell D17 from 0 to 1).
(Ex: cell A3 = 21 then cell D22 from 0 to 1).

第三张出席情况表2011 / V / 03和2011 / V / 05不在 (例如:细胞A3 = 03,然后细胞D4从1到2)。 (缺少第二张,所以1到2) (例如:细胞A3 = 05,然后细胞D6从2到3)。 (缺少第二张,所以2到3)

这种情况每天都会发生,直到出勤表被电脑化。

https://www.flickr.com/gp/93604880@N02/8kv3N0

2 个答案:

答案 0 :(得分:0)

使用非常简单的数据输入用户表单可以最好地实现您的目标。

Google “excel vba数据输入用户表单” ,您将找到优秀的教程。

跟着他们回到这里继续阅读这个答案。

我会创建两张纸和一张表格。

Sheet1将包含您的数据条目的日志。只有两列,日期和学生代码。

Sheet2将包含缺席计数。同样有两列,第一列是所有学生的列表,第二列是缺勤的运行次数。

表单将包含两个控件。一,单个字段用于学生代码(文本框或更精细的组合框,在初始化时使用sheet2第1列的所有学生代码构建)。还有两个,一个提交按钮

在提交按钮的代码上,您应该添加一些代码以获取当前日期和所选学生代码,并将它们插入到sheet1的最后一行。

在sheet2上,第二列是一个公式,它只是相应学生代码在sheet1第2列中查找结果的计数。

答案 1 :(得分:0)

在数据输入表的代码模块中:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim student As String, f As Range

    If Target.Cells.Count = 1 And Target.Address() = "$A$3" Then

        student = "2011/V/" & Format(Target.Value, "00")

        Set f = Me.Range("C:C").Find(what:=student, lookat:=xlWhole)
        If Not f Is Nothing Then
            Me.Range("A3:A4").ClearContents
            f.Offset(0, 1).Value = f.Offset(0, 1).Value + 1
        Else
            Me.Range("A4").Value = "Student not found!"
        End If

        Me.Range("a3").Select

    End If

End Sub