乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 84|回复: 4

[讨论][求助]vba利用鼠标获取text里面的数值。

[复制链接]

4

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
24
发表于 2010-7-9 09:48:00 | 显示全部楼层 |阅读模式
各位达人,在VBA中如何利用鼠标获取text里面的数值?
回复

使用道具 举报

0

主题

15

帖子

2

银币

初来乍到

Rank: 1

铜币
15
发表于 2010-7-9 19:31:00 | 显示全部楼层
没人 回答 呀

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-7-9 21:27:00 | 显示全部楼层
问题描述的太简单,没看懂
回复

使用道具 举报

4

主题

8

帖子

3

银币

初来乍到

Rank: 1

铜币
24
发表于 2010-7-12 10:24:00 | 显示全部楼层
终于搞出来了
贡献一下:

Public Function selectTextNum() As Double
    On Error Resume Next
    Dim ssetobj As AcadSelectionSet
    Dim strText As String, dblText As Double
    Dim blnHaveFoundText As Boolean, intCount As Integer
    ThisDrawing.SelectionSets("getTextNum").Delete
    Set ssetobj = ThisDrawing.SelectionSets.Add("getTextNum")
    ThisDrawing.Utility.Prompt "请选择格式的实体!"
   
    Dim pickedObjs As AcadEntity
    '循环每个被选择的实体
    blnHaveFoundText = False: intCount = 0
    Do
        ssetobj.SelectOnScreen
        If checkkey(escape) = True Then GoTo Finish:
        If Err Then Err.Clear
        If ssetobj.count = 0 Then
            If vbNo = MsgBox("没有选择实体,是否重新点选?", vbYesNo) Then selectTextNum = -1: Exit Function 'GoTo Finish '如果没有选择物体,结束程序
        Else
            For Each pickedObjs In ssetobj
        '        If TypeOf pickedObjs Is AcadPolyline Or TypeOf pickedObjs Is Acad3DPolyline Then
        '        Debug.Print pickedObjs.ObjectName
        '        If pickedObjs.ObjectName = "AcDbMText" Then
        '            pickedObjs.Highlight (True) ' = acRed         '可将所有被选择实体将变为红色
        '            strText = pickedObjs.textString
        '            dblText = pickedObjs.Text
        '            selectTextNum = CDbl(strText)    '得到每个实体对象的文本内容
        '            pickedObjs.Highlight (False) ' = acRed         '可将所有被选择实体将变为红色
        '        End If
                If pickedObjs.ObjectName = "AcDbText" Then
                    pickedObjs.Highlight (True) ' = acRed         '可将所有被选择实体将变为红色
                    strText = pickedObjs.textString
                    selectTextNum = CDbl(strText)    '得到每个实体对象的文本内容
                    pickedObjs.Highlight (False) ' = acRed         '可将所有被选择实体将变为红色
                    ThisDrawing.Utility.Prompt "成功选取数值" & selectTextNum & ";" & vbCrLf
                    blnHaveFoundText = True
                End If
            Next
            intCount = intCount + 1
            If False = blnHaveFoundText Then
                If intCount 格式的实体,是否重新点选?", vbYesNo + vbQuestion) Then selectTextNum = -1: Exit Function
                Else
                    MsgBox "没有找到格式的实体,尝试超过3次,请手动输入!", vbInformation + vbCritical
                    selectTextNum = -1
                    Exit Function
                End If
            End If
        End If
    Loop While (False = blnHaveFoundText And intCount
回复

使用道具 举报

11

主题

43

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
87
发表于 2010-7-29 10:34:00 | 显示全部楼层
checkkey(escape)?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-1 08:25 , Processed in 0.248982 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表