bjbjbjbj 发表于 2009-1-6 09:30:00

如何提取块中的数字

本帖最后由 作者 于 2009-1-6 9:35:40 编辑 <br /><br /> <p></p><p>如图所示,图右边为要提取的文字,为块参照</p><p>我要提取 标记为H 的数字,其中有 提示H0的为整数部分。我的代码如下:</p><p>For Each ent In ssetObj<br/>If StrComp(ent.ObjectName, "AcDbBlockReference", 1) = 0 Then<br/>RetVal = ent.GetAttributes<br/><br/>&nbsp;&nbsp;&nbsp; For i = LBound(RetVal) To UBound(RetVal)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If UCase(RetVal(i).TagString) = TextBox1.text Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = RetVal(i).textstring<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; coorpoint = RetVal(i).insertionpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If UCase(RetVal(i).PromptString) = TextBox2.text Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = RetVal(i).textstring<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next<br/>coorpoint(2) = b + a / 10<br/>End If</p><p>上面的textbox1.text 可以输入为标记名称,TextBox2.text 作为输入 提示 名称</p><p>以上代码好像只能提取小数部分,整数部分不能提取出来。</p><p>请各位高手解答!!不胜感激</p>

bjbjbjbj 发表于 2009-1-6 15:11:00

<p>研究半天,自己解决。程序如下,不必输入标记和提示名称了,数据提取成功。就是不知道能否通用。各位有什么更好的方法啊</p><p>If i = LBound(RetVal) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = RetVal(i).textstring<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If i = 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b = RetVal(i).textstring<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; coorpoint = RetVal(i).insertionpoint<br/>&nbsp;&nbsp;&nbsp; Next i<br/>&nbsp; <br/>coorpoint(2) = a + b / 10</p>
页: [1]
查看完整版本: 如何提取块中的数字