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没有尝试过)
0% (0)
0% (0)