乐筑天下

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

求教一个关于VBA编程提取属性块里头的数值的问题

[复制链接]

4

主题

30

帖子

4

银币

初来乍到

Rank: 1

铜币
46
发表于 2003-11-14 22:29:00 | 显示全部楼层 |阅读模式
我的材料表是用属性做的块
计算材料的重量时很麻烦,我想利用程序实现(偷懒^_^)对材料规格的计算,得出单重,并将单重与数量相乘得到总重
问题:如何从属性块里头提取其中的一个属性并取值或附值
请教各位大侠
谢谢
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-11-15 10:13:00 | 显示全部楼层
blockRefObj.HasAttributes可以判断块引用对象中是否包含属性。
  1. Sub test()
  2.     ' 获取块引用对象的属性集合
  3.     Dim varAttributes As Variant
  4.     varAttributes = blockRefObj.GetAttributes
  5.    
  6.     ' 枚举集合,根据属性的标签得到其值或者对象
  7.     Dim strAttributes1 As String
  8.     Dim strAttributes2 As String
  9.     Dim objAttributes As AcadAttributeReference
  10.     Dim I As Integer
  11.     For I = LBound(varAttributes) To UBound(varAttributes)
  12.         If varAttributes(I).TagString = "单重" Then
  13.             strAttributes1 = varAttributes(I).TextString
  14.         ElseIf varAttributes(I).TagString = "数量" Then
  15.             strAttributes2 = varAttributes(I).TextString
  16.         ElseIf varAttributes(I).TagString = "总重" Then
  17.             Set objAttributes = varAttributes(I)
  18.         End If
  19.     Next
  20.    
  21.     ' 判断属性值是否是数字,如果是的话相乘并赋值
  22.     If IsNumeric(strAttributes1) And IsNumeric(strAttributes2) Then
  23.         objAttributes.TextString = strAttributes1 * strAttributes2
  24.     End If
  25.    
  26.     ' 更新块
  27.     blockRefObj.Update
  28. End Sub
回复

使用道具 举报

4

主题

30

帖子

4

银币

初来乍到

Rank: 1

铜币
46
发表于 2003-11-19 15:01:00 | 显示全部楼层
Thanks! You are very kind!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-29 13:27 , Processed in 1.144197 second(s), 59 queries .

© 2020-2025 乐筑天下

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