我在vba更新单个块属性时遇到麻烦,
你在绘图中选择存量数据的ansewr我正在测试acadblock块名称,然后是正确的块属性,因此然后更新(我在块中有11个属性)
我看不出我哪里出错了,一些行被剪掉以使电子邮件更短,一组新的眼睛可能会看到明显的,我让它工作,但在测试dwg之外发现了问题,所以我知道代码是99%
Public Sub ModifyPitschdule4()
'将2 Pts x和y
Dim SS作为AcadSelectionSet
'Dim ObENT As AcadEntity
Dim Count As整数
Dim val, Pitname As String
Dim PitNameSelect As AcadObject
Dim basepnt, pt1, pt2, pt3 As Variant
Dim attribs As Variant
On Error Resume Next
Set SS=ThisDrawing.SelectionSets.Add("MYSS2")
SS.SelectacSelectionSetAll
val="SCHEDTEXT"'this is block name
ThisDrawing.Utility.GetEntityPitNameSelect, basepnt,"选择坑名:"
如果PitNameSelect.ObjectName="AcDbText"那么
MsgBox"选择的坑名是"&Pitname
结束如果
如果PitNameSelect.ObjectName="AcDbBlockAud"那么
Pitblname=PitNameSelect.Name'RETRURNS BLOCK NAME
attribs=PitNameSelect.GetAttributes
Pitname=attribs(0)。TextString
MsgBox"皮特名删除论坛的行
pt1=ThisDrawing.Utility.GetPoint(,"选择第一点")
pt2=ThisDrawing.Utility.GetPoint(,"选择第二点L")
pt3=ThisDrawing.Utility.GetPoint(,"选择第三点W")
长度坑=CStr(FormatNumber(lz,0))
widthpit=CStr(FormatNumber(lz,0))
代码再次开始这里
对于i=1到SS.Count
设置对象=SS(i)
如果objENT.EntityName="AcDbBlockResources"然后
attribs=objENT.GetAttributes
MsgBox"1 ATTRIB name IS"&objENT.EntityName&"......"&objENT.Name&"......"&attribs(0)。TextString
'不在这里返回块名称
如果objENT.Name=val那么'这不起作用
'attribs=objENT.GetAttributes
MsgBox"2块名称IS"&objENT.Name&"......"&i&"......"&attribs(0)。TextString
'这会找到块
如果attribs(0)。TextString=Pitname然后
'在这里更新属性值。
attribs(1)。TextString=txtx1
attribs(2)。TextString=txtx2
attribs(3)。TextString=txtx2
attribs(4)。TextString=txty2
attribs(5)。TextString=长度坑
attribs(6)。#结束所有的ifs等