使用VBA更新AutoCAD中的表格数据链接

问题描述 投票:1回答:1

我有一个问题,有一个包含大量数据链接的AutoCAD文件,并且只想更新与特定表相关的数据链接。 Simmilar选择具有数据链接的表的功能,右键单击并选择更新表数据链接。

我有以下代码:

Private Sub Update_table_data_link(tblRef As AcadTable)

ThisDrawing.SendCommand "DATALINKUPDATE" & vbCr & "U" & vbCr & "K" & vbCr

End Sub

它工作但更新图中的所有数据链接(这是一个问题)所以一个完美的解决方案将让我得到与tblRef相关的链接 并将该行更改为: ThisDrawing.SendCommand "DATALINKUPDATE" & vbCr & "U" & vbCr & "D" & vbCr & "datalink_name_from_tblRef" & vbCr

或者直接发送命令来更新tblRef的链接

excel vba autocad data-linking
1个回答
0
投票

经过大量挖掘和大量帮助后,答案如下:

Private Sub Update_table_data_link(tblRef As AcadTable)

    ThisDrawing.SendCommand "DATALINKUPDATE " & vbCr & "U" & vbCr & Ent2lspEnt(tblRef) & vbCr & vbCr

End Sub

Public Function Ent2lspEnt(entObj As AcadEntity) As String
    'Designed to work with SendCommand, which can't pass objects.
    'This gets an objects handle and converts it to a string
    'of lisp commands that returns an entity name when run in SendCommand.
    Dim entHandle As String

    entHandle = entObj.Handle
    Ent2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function

请注意,“Update_table_data_link”有一个表作为输入

© www.soinside.com 2019 - 2024. All rights reserved.