我有一张工作表,顶部是员工 ID,侧面是日期。
然后我需要每天在名字上输入 Y 或 N,我有 96 名员工,所以它真的很长。有没有一个按钮或宏,如果一个人得到 YI,就可以将这些人复制到另一张表,如果新人得到 Y,它也会接管他们。这样就可以更容易地缩小 Y 人员的范围
答案1
我认为这个 VBa 实现了您想要的功能...您的问题不是最清楚的。
请记住,使用 VBa 时,请先创建文件的副本,因为它没有撤消功能
Option Explicit
Sub FindYeTheMapOfTreasure()
Worksheets("Sheet2").Range("A:F").Clear
Worksheets("Sheet2").Range("A:B").Value = Worksheets("Sheet1").Range("A:B").Value
Dim row As Integer
row = 2
Do While Worksheets("Sheet1").Range("C" & row).Value <> ""
If Worksheets("Sheet1").Range("C" & row).Value = "Y" Then
Worksheets("Sheet2").Range("C:C").Value = Worksheets("Sheet1").Range("C:C").Value
End If
If Worksheets("Sheet1").Range("D" & row).Value = "Y" Then
Worksheets("Sheet2").Range("D:D").Value = Worksheets("Sheet1").Range("D:D").Value
End If
If Worksheets("Sheet1").Range("E" & row).Value = "Y" Then
Worksheets("Sheet2").Range("E:E").Value = Worksheets("Sheet1").Range("E:E").Value
End If
If Worksheets("Sheet1").Range("F" & row).Value = "Y" Then
Worksheets("Sheet2").Range("F:F").Value = Worksheets("Sheet1").Range("F:F").Value
End If
If Worksheets("Sheet1").Range("G" & row).Value = "Y" Then
Worksheets("Sheet2").Range("G:G").Value = Worksheets("Sheet1").Range("G:G").Value
End If
row = row + 1
Loop
End Sub
工作表1
运行后,sheet2 看起来像