一.字符串函数
1. ASC(X)
[格式]:P=Asc(X) 返回字符串X的第一个字符的字符码
[范例]:(2)P=Asc(“A”) 输出65
2 Chr(X):转换字符码
[格式]:P=Chr(X) 返回字符码等于X的字符
[范例]:(P=Chr(65)  输出字符A,因为A的ASCII码等于65
3 InStr函数:寻字符串
[格式]: P=InStr(X,Y)  从X第一个字符起出Y出现的位置
P=InStr(n,X,Y)  从X第n个字符起出Y出现的位置
[说明]:
(1) 若在X中到Y,则返回值是Y第一个字符出现在X中的位置。
(2) InStr(X,Y)相当于InStr(1,X,Y)。
(3) 若字符串长度,或X为空字符串,或在X中不到Y,则都返回0。
(4) 若Y为空字符串,则返回0。
4  Lcase:不论字符串中的字符为大写还是小写,一律输出为小写。Ucase:输出为大写
5 left(字符串,长度):例如 Left(";小欣无敌",3) 则返回 ";小欣无"
6 len(字符串): 例如 len(";小欣无敌") 则返回 4
7 Ltrim(string) 将字符串前面的空格去掉
8 Mid(string,start,length) 从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串
9 Replace: 将字符串中的某些特定字符串替换为其他字符串
[格式]:P=Replace(X,S,R)
[说明]:将字符串X中的字符串S替换为字符串R,然后返回。
[范例]: X=”VB is very good”
P=Replace(X,good,nice)
输出结果为:P=”VB is very nice”
10 right(字符串,长度) :从[字符串]的右边开始返回[长度]个字符
例如 Right(";小欣无敌",3) 则返回 ";欣无敌"
11 Rtrim(string) 将字符串后面的空格去掉
12 space(个数) : 返回[个数]个空格
例如 space(5) 则返回 " " (5个空格)
13 string(个数,字符) :返回[个数]个[字符]
例如: string(3,";小") 则返回 ";小小小" , 而 string(3,";小欣无敌") 也返回 ";小",只有首字符才有效
ArcGIS属性表中VBA的一些使用技巧(2009-09-24 11:07:11)转载▼标签: 属性表vbaarcgis文化 分类: 学术 
在ArcGIS属性表中,一般不会包含实体几何信息,可以采取VBA进行计算。下面是几个简单的代码
特点:
1推荐给不会使用AO的朋友
2可以保存为CAL文件以备下次方便使用
使用方法
1打开属性表,选择计算的字段,右点选择Calculate Values;
2.选择“是”,进入Field Calculator;
2选择Advance选项;
3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;
4在下面编辑框中输入赋值部分.
1--点坐标X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPoint As IPoint
Set pPoint = pGeo
赋值部分:
pPoint.X
2--点坐标Y
VBA部分:
同上
赋值
部分:
pPoint.Y
坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。返回当前显示的坐标值参看8,9
3--
多边形周长
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
赋值部分:
pPolygon.Length
4--多边形面积
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
赋值部分:
pArea.Area
5--多边形重心X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
Dim pPoint As IPoint
Set pPoint = pArea.Centroid
赋值部分:
pPoint.X
6--多边形重心Y
VBA部分:
同上
赋值部分:
pPoint.Y
7--Polyline长度
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolyline As IPolyline
Set pPolyline = pGeo
vba计算字符串长度Dim pCurve As IPolycurve
Set pCurve = pPolyline
赋值部分:
pCurve.Length
8--表示点坐标X
VBA部分:
Dim pDoc As IMxDocument
Set pDoc = ThisDocument
Dim pSpRef As ISpatialReference
Set pSpRef = pDoc.FocusMap.SpatialReference
Dim pClone As IClone
Set pClone = [Shape]
Dim pGeo As IGeometry
Set pGeo = pClone.Clone
Dim pPoint as IPoint
Set pPoint = pGeo
pGeo.Project pSpRef
赋值部分:
pPoint.X
9--表示点坐标Y
VBA部分:
同上
赋值部分:
pPoint.Y
坐标值为On the Fly显示的坐标,不是文件存储的固有坐标
10--连续编号
VBA部分:
Static lCount as long
lCount=lCount+1
赋值部分:
lCount (从1开始)
lCount-1 (从0开始)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。