变量“objMText”在赋值前被使用。可能会在运行时导致 null 引用异常

redarrow2000 2018-06-05 09:28:53
Public Sub ss()
On Error GoTo err1
Dim objEntArr() As Object, i As Long
Dim objSset As AutoCAD.AcadSelectionSet

SelectAllText(objSset)
ReDim objEntArr(objSset.Count - 1)
For i = 0 To objSset.Count - 1
objEntArr(i) = objSset.Item(i)
Next i
XY_Sort(objEntArr)
For i = 0 To UBound(objEntArr)
objEntArr(i).TextString = objEntArr(i).TextString & CStr(i + 1)
Next i
Exit Sub
err1:
Err.Clear()
Debug.Print(Err.Description)
End Sub
为什么VBA中正常,到VB2010中就出现警告 1 变量“objMText”在赋值前被使用。可能会在运行时导致 null 引用异常。 这句中的SelectAllText(objSset),哪位高人指点下
...全文
1766 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
VB业余爱好者 2018-12-07
  • 打赏
  • 举报
回复
代码中没看到“objMText”变量,楼主说的警告一般出现在使用了错误捕捉,然后在错误处理里面使用了某个变量(比如objMText),但这个变量的是在错误捕捉块之后才第一次赋值的,如果错误发生在这个变量赋值之前,那在错误处理时,这个变量就尚未被赋值,所以才会有“变量在赋值前被使用,可能会在运行时导致null引用异常”的警告。

解决办法就是在错误捕捉之前就对变量进行赋值。
xiafan 2018-12-01
  • 打赏
  • 举报
回复
Dim objSset As AutoCAD.AcadSelectionSet SelectAllText(objSset) 你确定在VBA中运行是正常的吗?我指的正常是能输出正常的结果吗? 你这里的选择集,没有指定名称,也没有执行。 你的SelectAllText是不是一个自己写的过程啊?是不是在这个过程中有对选择集的操作?比如,加上筛选等操作的? 一般来说,定义一个选择集,然后要给选择集add一个名称,再执行Select的操作(如果要过虑的话,还要加上参数等)才能得以选择集内容。然后才能对选择集进行遍历。 而且,你这个ojbMText更像是多行文本的错误。而不是选择停板 错误。只是在你贴的代码里看不出来。
Laser3015 2018-09-24
  • 打赏
  • 举报
回复
声明变量后及时初始化 , 这个感觉像是cad 二次开发的
liulilittle 2018-06-12
  • 打赏
  • 举报
回复
objMText 变量在此前未被赋值,dotNET初始化时任何类型的默认值 是NULL/0
FainSheeg 2018-06-12
  • 打赏
  • 举报
回复
引用 5 楼 redarrow2000 的回复:
FainSheeg大神能给具体指导怎么赋值吗?“objMText”在赋值前被使用应为“objSset”在赋值前被使用
大神就莫提了。。。。。。给你说明了呀,如果程序能正常运行你就直接不理这个警告就行了。如果不能,那你就得先给变量赋值了才使用变量,Dim objSset As AutoCAD.AcadSelectionSet 在这句的后面加一句:objSset=???(变量初始值) 就行了。
一生要强的Zz 2018-06-06
  • 打赏
  • 举报
回复
应该是没有初始化
FainSheeg 2018-06-06
  • 打赏
  • 举报
回复
这个只是警告,并不是错误,原因是你在使用objSset变量之前,只声明了它Dim objSset As AutoCAD.AcadSelectionSet,并没有赋值。解决方法是在使用变量之前初始化,通俗点就是先赋值再用。当然如果你确定不初始化程序也能运行,也可以忽略这个警告。
redarrow2000 2018-06-06
  • 打赏
  • 举报
回复
不知道怎么初始化,请指点下
redarrow2000 2018-06-06
  • 打赏
  • 举报
回复
FainSheeg大神能给具体指导怎么赋值吗?“objMText”在赋值前被使用应为“objSset”在赋值前被使用
threenewbee 2018-06-05
  • 打赏
  • 举报
回复
代码里面没有看到 objMText 你先初始化下

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧