如果您打算使用VBA,则只需将所有内容都复制完毕,然后在表单上进行评估(“时间表” )。
Dim i as integer
Dim LR as Long
LR = Sheets("Pupils).Cells(Rows.Count, "A").End(xlUp).Row
Sheets("Pupils").Range("A1:B"&LR).Copy Sheets("Timetable").Range("A1:B"&LR)
For i = LR to 2 Step -1
If Sheets("Timetable").Cells(i,2).Value=Sheets(Pupils).Cells(2,2).Value Then
Else: Sheets("Timetable").Rows(i).Delete
End If
Next i
我去使用if语句,其中如果你一天在B列中小学生标签单元格B2匹配,则什么也不会发生,但如果它不匹配,它删除了该行的路线。请注意,For循环有一个负面的步骤,因为最后一行是在开始删除之前定义的,因此您希望从下往上倒退。
编辑:
如果你想在表单元格(“时间表”)说的日期,你可以改变if语句,以反映细胞,例如
=Sheets("Timetable").Cells(1,3) 'if you have the drop-down table in C1
如果您真的想深入研究,还可以让Userform选择星期几。您将输入保存为变量并进行类似比较:
Dim DayInput as String
DayInput=CheckBox1.Value
If Sheets("Timetable").Cells(i,2).Value=DayInput Then
'时间表中的每一行是否指的是不同的日期?您发布的公式与“时间表”中的日期相关意味着什么?这将有助于看到一些具有预期产出的样本数据。 – BruceWayne