wyh_singlee 发表于 2008-5-12 14:51

如何知道数组中有多少已经有内容?

Private Sub Command2_Click()
    Dim l_tbl_test(1 To 10) As rec_test
    l_tbl_test(1).div_opt = "1"
    l_tbl_test(1).div_opt_desc = "AAAAAAAA"
    For i = LBound(l_tbl_test) To UBound(l_tbl_test)
        If Len(l_tbl_test(i).div_opt) = 0 Then
            MsgBox "Last Record Number " & i
        End If
    Next i
End Sub

期望返回"Last Record Number 1", 可惜什么都没显示。
如何解决?

ouzhiguang 发表于 2008-5-12 17:27

Dim l_tbl_test(1 To 10) As rec_test
    l_tbl_test(1).div_opt = "1"
    l_tbl_test(1).div_opt_desc = "AAAAAAAA"
    For i = LBound(l_tbl_test) To UBound(l_tbl_test)
        If Len(l_tbl_test(i).div_opt) = 0 Then
            MsgBox "Last Record Number " & i
        End If
    Next i
End Sub
注意:你设置的数组是从1-10而不是0-9
呵呵 你把判断条件改一下 Len(l_tbl_test(i).div_opt)> 0 那预期结果就是 Last Record Number 1 啦

ouzhiguang 发表于 2008-5-12 17:28

在你的那条件当然不返回1,应该返回10才对!

wyh_singlee 发表于 2008-5-12 17:43

我想知道第一个DIV_OPT值为空,所对应的数组Index号。[tk08]

wyh_singlee 发表于 2008-5-13 09:55

顶啊!

wyh_singlee 发表于 2008-5-13 14:18

[tk01]

ouzhiguang 发表于 2008-5-14 13:03

Dim l_tbl_test(1 To 10) As rec_test
    l_tbl_test(1).div_opt = "1"
    l_tbl_test(1).div_opt_desc = "AAAAAAAA"
    For i = LBound(l_tbl_test) To UBound(l_tbl_test)
        If Len(l_tbl_test(i).div_opt) = 0 Then
            MsgBox "Last Record Number " & i
           exit sub
        End If
    Next i
End Sub
这样输出结果就是Last Record Number 2

ouzhiguang 发表于 2008-5-14 13:04

Dim l_tbl_test(1 To 10) As rec_test
    l_tbl_test(1).div_opt = "1"
    l_tbl_test(1).div_opt_desc = "AAAAAAAA"
    For i = LBound(l_tbl_test) To UBound(l_tbl_test)
        If Len(l_tbl_test(i).div_opt) = 0 Then
            MsgBox "Last Record Number " & i
           exit sub
        End If
    Next i
End Sub
这样输出结果就是Last Record Number 2

页: [1]

编程论坛