明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2068|回复: 7

用选择集一次性判断数字文字

[复制链接]
发表于 2009-8-6 16:27:00 | 显示全部楼层 |阅读模式

      我需要选择仅仅为数字的单行或多行文字,我只会先做选择集,然后在选择集中循环,再在循环中用IsNumeric(X)判断!能不能用选择集一次性判断,就是将IsNumeric(X)加入到选择集中。这样的好处:选择是能立即看出有多个数字,非数字型文字不会选择!

 谢谢各位!

黄玉宏  二○○九年八月六日

发表于 2009-8-6 17:22:00 | 显示全部楼层
只选择是数字的text/mtext的过滤器

    0, "*Text",
     1, "~*[~.0-9]*",
     1, "~*.*.*"
 楼主| 发表于 2009-8-6 20:23:00 | 显示全部楼层

谢谢版主,试了一下不行!还请你再次给予指示!

谢谢!

Public Sub BuildFilter(typeArray, dataArray, ParamArray gCodes())  '建立过滤代码子程序
Dim ftype() As Integer, fdata()     '用数组方式填充一对变量作为选择集过滤器使用
Dim index As Long, i As Long
index = LBound(gCodes) - 1
For i = LBound(gCodes) To UBound(gCodes) Step 2
index = index + 1
ReDim Preserve ftype(0 To index)
ReDim Preserve fdata(0 To index)
ftype(index) = CInt(gCodes(i))
fdata(index) = gCodes(i + 1)
Next
typeArray = ftype: dataArray = fdata
End Sub

Sub bb()
On Error Resume Next
Dim SS As AcadSelectionSet
ThisDrawing.SelectionSets("Test").Delete
Set SS = ThisDrawing.SelectionSets.Add("Test")
Dim ftype, fdata
BuildFilter ftype, fdata, 0, "*Text", 1, "~*[~.0-9]*", 1, "~*.*.*"
SS.SelectOnScreen ftype, fdata
MsgBox SS.Count
End Sub
症状:一个数字都选择不了!

发表于 2009-8-7 12:02:00 | 显示全部楼层

我这可以的。"123.5"是可以的。如果是"12.5w"  就不行的

 楼主| 发表于 2009-8-7 14:29:00 | 显示全部楼层

我这儿还是不行啊!三楼能否直接将DVB文件发给653194278@qq.com,让我测试一下!

真是怪了!谢谢!

黄玉宏 二○○九年八月七日

发表于 2009-8-7 17:06:00 | 显示全部楼层

我是直接把他拷贝到VBA中就可以运行了

发表于 2009-8-7 17:56:00 | 显示全部楼层

我试过了,可以选到。

楼主的数字文本里是不是带了空格?有空格就选不中。带有格式的多行文本也选不中。

 楼主| 发表于 2009-8-7 22:00:00 | 显示全部楼层

谢谢烟雨江南!非常感谢!完全正确!同时也非常感谢版主!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 02:39 , Processed in 0.154650 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表