我正在编写代码,用于比较用户表单中的两个日期和数组中的列。
如果介于两者之间,则将整行设置在另一个数组中。
Dim vD1 As Variant
Dim vD2 As Variant
vD1 = UserForm1.TextBox1.Value
vD2 = UserForm1.TextBox2.Value
If vD1 = Empty Then
vD1 = #1/1/2010#
End If
If vD2 = Empty Then
vD2 = #1/1/2100#
End If
vD1 = Format(vD1, "General Number")
vD2 = Format(vD2, "General Number")
For i = 1 To 100
If myArray5(i, 1) >= vD1 Then
If myArray5(i, 1) <= vD2 Then
For j = 1 To 8
myArray6(i, j) = myArray5(i, j)
Next j
End If
End If
Next i
For i = 1 To 100
If myArray5(i, 1) <= vD1 Then
If myArray5(i, 1) >= vD2 Then
For j = 1 To 8
myArray6(i, j) = Empty
Next j
End If
End If
Next i
答案 0 :(得分:0)
这实际上取决于myArray5和myArray6中的内容,以及这些内容的格式。有关Excel VBA中的日期比较方法和函数的详细信息,请从Excel Developer站点中检查this link。
此外,从鸟瞰角度来看,您可以通过将 If ... Then 语句与和语句相结合来改进,例如:
If (myArray5(i, 1) >= vD1) and (myArray5(i, 1) <= vD2) Then _
myArray6(i, j) = myArray5(i, j)
您也可以尝试在代码中添加注释和缩进 - 这将极大地帮助调试!