gpt4 book ai didi

VBA,Excel - 比较多个条件的行,复制并在新工作表中添加结果

转载 作者:行者123 更新时间:2023-12-04 22:55:12 24 4
gpt4 key购买 nike

在我的 Excel 工作表中,我有几个值需要比较和总结以符合案例定义的条件。

工作表包含以下信息:

姓名(A)、日期(B)、工作时间(C)、其他信息(D-H)。

我想通过 VBA 检查 Hours worked 是否超过值“10”。如果是,则代码需要比较上一行中的 Name 是否等于当前 AND Date< 中的 Name/strong> 两行彼此相等。

如果所有这些条件都成立,则应汇总工作时间,并将结果复制到工作表 2。还应复制所需的信息,如姓名、日期和其他信息。

现在我试过这个:

Sub check_Click()

Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long, p As Long

Set s1 = Sheets(1)
Set s2 = Sheets(2)

N = s1.Cells(s1.Rows.Count, "C").End(xlUp).Row
p = 1

For i = 1 To N
If IsNumeric(s1.Range("C" & i)) And s1.Cells(i, "C").Value < 10 Then
Next i
ElseIf s1.Cells(i, "B").Value = s1.Cells(i - 1, "B").Value And s1.Cells(i, "A").Value = s1.Cells(i - 1, "A").Value Then
s1.Range(Cells(i, "A"), Cells(i, "C")).Copy s2.Cells(p + 5, 1)
End If
End Sub

您可能会看到代码无法正常工作 - 不幸的是。

我希望有人能照亮我的路。

最棘手的部分是比较前一行并总结小时数。

提前致谢

最佳答案

代码不正确。 Next i 不能在 If ... Then 中使用。

由于在 VBA 中缺少 continue 你还必须更改条件(或使用 Goto,但这不是我的首选解决方案):

Sub check_Click()
Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long, p As Long

Set s1 = Sheets(1)
Set s2 = Sheets(2)

N = s1.Cells(s1.Rows.Count, "C").End(xlUp).Row
p = 1

For i = 1 To N
If IsNumeric(s1.Range("C" & i)) And s1.Cells(i, "C").Value >= 10 Then
If s1.Cells(i, "B").Value = s1.Cells(i - 1, "B").Value And s1.Cells(i, "A").Value = s1.Cells(i - 1, "A").Value Then
s1.Range(Cells(i, "A"), Cells(i, "C")).Copy s2.Cells(p + 5, 1)
End If
End If
Next i
End Sub

编辑:

因为值与前一行进行比较,for 循环需要从 2 开始。

Sub check_Click()
Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long, p As Long

Set s1 = Sheets(1)
Set s2 = Sheets(2)

N = s1.Cells(s1.Rows.Count, "C").End(xlUp).Row
p = 1

For i = 2 To N ' Iterate from second row
If IsNumeric(s1.Range("C" & i)) And s1.Cells(i, "C").Value >= 10 Then
If s1.Cells(i, "B").Value = s1.Cells(i - 1, "B").Value And s1.Cells(i, "A").Value = s1.Cells(i - 1, "A").Value Then
s1.Range(Cells(i, "A"), Cells(i, "C")).Copy s2.Cells(p + 5, 1)
End If
End If
Next i
End Sub

关于VBA,Excel - 比较多个条件的行,复制并在新工作表中添加结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44322975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com