Vbscript 删除ArcView 10标签中显示的空值

Vbscript 删除ArcView 10标签中显示的空值,vbscript,arcgis,Vbscript,Arcgis,我试图创建一个三层标签,其中第三行是一年。然而,有些数据没有年份。我希望这些标签仅显示为两层,即空白。此时,ArcView 10正在所有这些标签中自动插入0。下面是我尝试对其进行排序,但它不起作用。请记住,我不习惯在vbScript中工作,所以请用非常简单的词回答 Function FindLabel ( [SubCmpt], [Species], [P Year] ) FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf &

我试图创建一个三层标签,其中第三行是一年。然而,有些数据没有年份。我希望这些标签仅显示为两层,即空白。此时,ArcView 10正在所有这些标签中自动插入0。下面是我尝试对其进行排序,但它不起作用。请记住,我不习惯在vbScript中工作,所以请用非常简单的词回答

Function FindLabel ( [SubCmpt], [Species], [P Year] )
  FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year] )
  if ( [P Year] = '0') then
   FindLabel = [SubCmpt] & vbCrLf & [Species]
  else
FindLable = [SubCmpt] & vbCrLf & [Species] &vbCrLf & [P Year] 
End Function

提前感谢您的所有建议。

我没有使用ArcGIS的经验,但我希望
Null
(表示无效数据的特定值)和
'0'
(字符串“0”)是不同的值。VBScript提供了一个特殊函数(
IsNull()
)来测试
Null
值,因此请尝试
IsNull([P年])
而不是
[P年]=“0”


您可能会得到更好的答案。

首先,我不确定函数的第一行应该做什么:

FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year] )
你不需要它

第二,你每次都需要用同样的方式拼写“FindLabel”

第三,使用IsNull来检测null(正如@Ansgar所说的)

第四,在VBA中,需要使用
end If
结束If-Else语句

总之,请尝试以下方法:

Function FindLabel ( [SubCmpt], [Species], [P Year] )
  If IsNull([P Year]) Then
    FindLabel = [SubCmpt] & vbCrLf & [Species]
  Else
    FindLabel = [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year] 
  End If
End Function