比较数组中的日期

时间:2013-10-02 18:10:16

标签: excel-vba vba excel

我正在编写代码,用于比较用户表单中的两个日期和数组中的列。

如果介于两者之间,则将整行设置在另一个数组中。

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

1 个答案:

答案 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)

您也可以尝试在代码中添加注释和缩进 - 这将极大地帮助调试!