'下面程序段是用来列出ArcMap中,指定图层和字段中,所有Unique Value 2003年5月19日 兔八哥
Public Function listUniqueValue(pLayer As IFeatureLayer, pFieldName As String) As String()
Dim pCursor As Icursor
Set pCursor = pLayer.Search(Nothing, False)
Dim pDataStat As IDataStatistics
Dim pValue As Variant
Set pDataStat = New DataStatistics
pDataStat.Field = pFieldName
Set pDataStat.Cursor = pCursor
Dim pEnumVar As IEnumVariantSimple
Set pEnumVar = pDataStat.UniqueValues
pValue = pEnumVar.Next
Dim I As Long
'Dim count As Long
'count = pDataStat.UniqueValueCount
I = 0
Dim value(200) As String '数组的长度按说应该使用pDataStat.UniqueValueCount来控制,但是编译只能使用
'常数,不能使用变量
Do Until IsEmpty(pValue)
value(I) = pValue
I = I + 1
pValue = pEnumVar.Next
Loop
listUniqueValue = value()
End Function
(说明:该函数兔八哥只在ArcMap VBA中运行过,没有问题,VB+AO没有尝试过)