根据答案将“人”移入时段

时间:2015-02-19 09:51:55

标签: excel excel-vba vba

我正在尝试在Excel 2013上创建一个内部数据库,用于管理人员,基于人力资源。

例如,50人可能会申请工作,但只有15人可以被邀请参加面试。

我想要的是某种自动化,这意味着如果我点击候选人信息行旁边的按钮(可能会说“邀请访谈”),那么它会自动将该候选人的数据行复制到下一个可用时间下一张纸上的插槽。时间段将在A列中预先填充,但其余列将为空白。

希望有人可以提供帮助 - 我必须承认我对宏等只有基本的了解,但我是一个快速学习者。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

基本上你可以做这样的事情。我假设你有2张如下:

表"申请人": enter image description here

表"时间段": enter image description here

Dim A_List As Worksheet
Dim T_List As Worksheet
Dim A_LastRow As Long
Dim T_LastRow As Long

Set A_List = Sheets("Applicants")
Set T_List = Sheets("Time Slot")
A_LastRow = A_List.Range("A" & Rows.Count).End(xlUp).Row
T_LastRow = T_List.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To A_LastRow
    If A_List.Range("B" & i).Value = "Yes, Call Him" Then
        If A_List.Range("C" & i).Value <> "Yes" Then
            t = 1
            While t <= T_LastRow
                If T_List.Range("B" & t).Value = "" Then
                    A_List.Range("A" & i).Copy Destination:=T_List.Range("B" & t)
                    A_List.Range("C" & i).Value = "Yes"
                    t = T_LastRow + 1
                End If
            t = t + 1
            Wend
        End If
    End If
Next

因此,您的工作表将如下所示:

表&#34;申请人&#34;:

enter image description here

Sheet&#34; Time Slot&#34;:

enter image description here

警告:此编码没有任何错误证明。您可能希望在IF函数中添加一些警告ELSE