找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1155|回复: 4

[求助] excel vba 添加cad 引用

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2020-9-2 09:25:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在excel中使用vba写代码,可以使用“工具” ---> "引用" 的方式添加引用“AutoCad 2014 Type Library”,但是如果发给其他人,其他人安装的版本不一样,请教怎么能通过代码自动引用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 64个

财富等级: 招财进宝

发表于 2020-9-2 19:56:36 | 显示全部楼层
是对象的后期绑定吗?
Set objAcad = CreateObject("autocad.application")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 226个

财富等级: 日进斗金

发表于 2020-9-3 07:16:46 | 显示全部楼层
谢谢分享!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2020-9-3 12:29:48 | 显示全部楼层
嗯嗯,已经解决了,可以用后期绑定,也可以用代码进行引用
https://www.cnblogs.com/NanShengBlogs/p/13606109.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2020-9-3 12:31:21 | 显示全部楼层
du945862399 发表于 2020-9-3 12:29
嗯嗯,已经解决了,可以用后期绑定,也可以用代码进行引用
https://www.cnblogs.com/NanShengBlogs/p/1360 ...
  1. Sub AutoADDAutoCADTypeLib()
  2.     Dim Ref As Variant
  3.     Dim hasAutoTypeLib As Boolean, hasAXDBLib As Boolean, acadName As String
  4.     hasAutoTypeLib = False: hasAXDBLib = False
  5.     For Each Ref In ThisWorkbook.VBProject.References
  6.         If Ref.Name = "AutoCAD" Then hasAutoTypeLib = True
  7.         If Ref.Name = "AXDBLib" Then hasAXDBLib = True
  8.     Next Ref
  9.     Dim wshell As Object
  10.     Set wshell = CreateObject("WScript.Shell")
  11.     Dim strAcadShardFd As String, acadCurVer1 As String, acadCurVer2 As String, acadLanguage As String
  12.     '读取cad的版本
  13.     acadCurVer1 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\CurVer")
  14.     '读取cad的语言版本
  15.     acadCurVer2 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" & acadCurVer1 & "\CurVer")
  16.     '读取cad的最后一次启动的语言版本
  17.     acadLanguage = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" & acadCurVer1 & "" & acadCurVer2 & "\AllUsersFolder")
  18.     Dim LanguagePath As Variant, acadVer As String
  19.     LanguagePath = VBA.Split(acadLanguage, "")
  20.     acadVer = VBA.Mid(acadCurVer1, 2, 2) & LanguagePath(UBound(LanguagePath) - 1)
  21.     acadName = LanguagePath(UBound(LanguagePath) - 3)
  22.     '读取cad的64位类型库的路径
  23.     strAcadShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" & acadCurVer1 & "" & acadCurVer2 & "\AutodeskSharedFolder")
  24.      
  25.     '读取cad的32位类型库的路径
  26.     'strAcad32ShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" & acadCurVer1 & "" & acadCurVer2 & "\AutodeskShared32Folder")
  27.      
  28.     Set wshell = Nothing
  29.      
  30.     If hasAutoTypeLib = False Then
  31.         ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "acax" & acadVer & ".tlb")
  32.         MsgBox acadName & " AutoCAD Type Lib Already add to referecne scucces"
  33.     Else
  34.         MsgBox "AutoCAD Type Lib Already add to referecne, no need add aagin"
  35.     End If
  36.     If hasAXDBLib = False Then
  37.         ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "axdb" & acadVer & ".tlb")
  38.         MsgBox acadName & " AXDBLib Already add to referecne scucces"
  39.     Else
  40.         MsgBox "AXDBLib Already add to referecne, no need add aagin"
  41.     End If
  42. End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 19:53 , Processed in 0.352847 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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