寻找一种新的方法来创build“签入”和“签出”系统

我目前正在为一个有大量硬盘驱动器的小型build筑物开发数据库,​​迄今为止我所做的系统完全按照我的雇主所期望的那样工作。

我目前的问题是有些VBA编码使用macros来签入和注销每个硬盘驱动器,硬盘驱动器有一个行,每个都有一个“签入”和“签出”button在最后。 目前,这两个button的编码都有效,但是我必须写出每个button的代码,包括“check in”和“check out”。

有没有办法将button的位置转换为一个string,然后将自己添加到编码,我可以放入某种数组,将自动定位每个button的输出为我?

处理按钮事件的编码。

macros是一个简单的.Show语句。 我的Excel表格如下图所示。 目前的大多数电池都是用公式编程的,因为这个系统需要相对自动化,以便不太熟练的电脑用户使用。

Excel视觉效果,解释细胞的价值。

编辑: 在我使用按钮“登记”硬盘之前。

点击button后,我的姓名缩写将被添加到当前时间/date的末尾。 这需要发生的许多button,所有的结果是在不同的单元格。

输出下面的按钮。

我的build议是避免使用button,而是覆盖工作表的SelectionChanged事件处理程序。 将button更改为格式化的单元格,点击后将执行所需的操作。

首先,configuration您的用户窗体返回一个值。 一种方法是将下面的代码放入UserForm的代码隐藏中:

 Public Property Get Initials() As String Initials = txtInitials.Text End Property Public Property Let Initials(ByVal sInitials As String) txtInitials.Text = sInitials End Property Private Sub btnOk_Click() Me.Hide End Sub 

接下来,将下面的代码添加到Sheet1

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim sInitials As String Dim sDate As String Dim sTime As String Dim frmInitials As InitialsForm If Target.Column = 13 Then Set frmInitials = New InitialsForm frmInitials.Show sInitials = frmInitials.Initials Unload frmInitials sDate = Date sTime = Time Cells(Target.Row, 6).Value = sDate + " / " + sTime + " " + sInitials End If End Sub 

当用户点击第13栏(M – “Check Out”)中的单元格时,会显示一个用户表单,询问用户的姓名首字母缩写。 一旦他们input了他们,并按下确定button,首字母缩写将被添加到时间戳的末尾,并插入到同一行的列6(F)。