VBA 如何根据列名得到他的列号
例如:
 A    B    C 
姓名 班级 性别
我知道“班级”这个列名,得到它的列是B

解决方案 »

  1.   

    应该说你想通过列名找到其序号(index),你只要通过列名遍历表中字段名,找到匹配列的对应序号就可以了。至于你要怎么命名,具体处理一下就可以了。下面以ADO为例,返回指定列名的序号(从1开始)Function GetIndex(name As String)
        Dim conn As ADODB.Connection
        
        Set conn = New ADODB.Connection
        conn.Provider = "Microsoft.Jet.OLEDB.4.0"
        conn.Open "d:/work/db1.mdb"    Dim rs As New ADODB.Recordset
        
        rs.Open "Student", conn
        
        
        Dim i As Integer
        
        For i = 1 To rs.Fields.Count
            If (name = rs.Fields(i - 1).name) Then
                GetIndex = i
                GoTo CloseALL
            End If
        Next
        
    CloseALL:
        '- not found
        If i > rs.Fields.Count Then
            GetIndex = -1
        End If
        rs.Close
        
        conn.Close
        
    End FunctionSub Test()
        Debug.Print GetIndex("姓名")
    End Sub