乐筑天下

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

[编程交流] 将Autocad文本复制到Excel usi

[复制链接]

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:31:09 | 显示全部楼层 |阅读模式
你好
 
这是奎师那。。。。有谁能帮助我如何使用VBA将Autocad文本复制到Excel
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 10:41:51 | 显示全部楼层
 
此文件将被复制到现有的Excel文件中
 
  1. Option Explicit
  2. ' Requires:
  3. ' Microsoft Excel Object Library
  4. ' go to Tools->Options->General Tab and check 'Break on Unhandled Errors'
  5. Const xlFileName As String = "C:\TestFile.xls" '<--change existing file name here
  6. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  7. Public Sub ExportText()
  8. Dim oSset As AcadSelectionSet
  9. Dim oEnt As AcadEntity
  10. Dim oText As AcadText
  11. Dim i As Long
  12. Dim ftype(0) As Integer
  13. Dim fdata(0) As Variant
  14. ftype(0) = 0: fdata(0) = "TEXT"
  15. Dim dxftype As Variant
  16. Dim dxfdata As Variant
  17. dxftype = ftype
  18. dxfdata = fdata
  19. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  20. Dim xlApp As Object
  21. Dim xlBook As Workbook
  22. Dim xlSheet As Worksheet
  23. Dim lngRow As Long, lngCol As Long
  24. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  25. On Error Resume Next
  26. Set xlApp = GetObject(, "Excel.Application")
  27. If Err <> 0 Then
  28. Err.Clear
  29. Set xlApp = CreateObject("Excel.Application")
  30. If Err <> 0 Then
  31. MsgBox "Impossible to run Excel.", vbExclamation
  32. End
  33. End If
  34. End If
  35. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  36. On Error GoTo Err_Control
  37.          With ThisDrawing.SelectionSets
  38.               While .Count > 0
  39.                    .Item(0).Delete
  40.               Wend
  41.          Set oSset = .Add("$Texts$")
  42.          End With
  43. oSset.SelectOnScreen dxftype, dxfdata
  44. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  45. xlApp.Visible = True
  46. Set xlBook = xlApp.Workbooks.Open(xlFileName)
  47. Set xlSheet = xlBook.Sheets(1)
  48. xlApp.ScreenUpdating = False
  49. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  50. lngRow = 1: lngCol = 1
  51. For Each oEnt In oSset
  52. Set oText = oEnt
  53. xlSheet.Cells(lngRow, lngCol).Value = oText.TextString
  54. lngRow = lngRow + 1
  55. Next oEnt
  56. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  57. xlSheet.Columns.HorizontalAlignment = xlHAlignLeft
  58. xlSheet.Columns.AutoFit
  59. xlApp.ScreenUpdating = True
  60. xlBook.Save
  61. xlBook.Close
  62. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  63. xlApp.Application.Quit
  64. Set xlApp = Nothing
  65. Set xlBook = Nothing
  66. Set xlSheet = Nothing
  67. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  68. MsgBox "Done"
  69. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  70. Err_Control:
  71. If Err.Number <> 0 Then
  72. MsgBox Err.Description
  73. End If
  74. End Sub
  75. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'

 
~'J'~
回复

使用道具 举报

2

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:49:29 | 显示全部楼层
谢谢你的密码
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 10:51:32 | 显示全部楼层
尊敬的各位:,
很抱歉从根级别开始。您提到的代码是在ACAD 2004的“工具”>“宏”>“宏”中复制的。但它仅限于“作为工作簿的手册”
错误信息如下:
编译错误:
未定义用户定义的类型
出了什么问题。
 
您提到的宏是否要复制到excel vba中?
我也试过了,同样的结果
我检查了Microsoft excel库。在excel中
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:03:05 | 显示全部楼层
这是一个拼写错误
 
改用这些行
 
Dim xlApp作为对象
将xlBook作为对象
将xlSheet作为对象
 
~'J'~
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:06:40 | 显示全部楼层
现在它停止在xlSheet。柱。水平对齐=xlHAlignLeft
我还尝试了xlSheet。柱。水平对齐=xlLeft
接下来,我尝试将这条线作为一个整体删除。它成功了。
运行如下:
命令:\u vbarun
选择对象:指定对角点:137
过滤出137个。在那之后,这条消息似乎已经完成了。
但在测试文件中找不到任何内容。我这边出了什么问题?
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 11:14:14 | 显示全部楼层
我意识到,实际上它只知道dtext命令
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:18:36 | 显示全部楼层
 
更改数值上的所有Excel常量
1、打开任何Excel文件
2.Alt+F11进入VBA编辑器
3、打开即时窗口
4.输入您需要的excel常数并提问
在前面标记
即。:
 
?xl左
 
然后按Enter键
 
-4131
 
对于您使用的所有xl常量,方法相同
 
HTH公司
 
~'J'~
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 11:28:38 | 显示全部楼层
有没有办法只获取多行文本的文本?我得到了文本中的所有代码。例如文本。文本文本\P更多文本。更多文本。此外,如果文本带有下划线等,则包含代码%%U。是否可以通过某种方式删除这些代码?
谢谢
杰米奇
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:31:47 | 显示全部楼层
 
以压缩格式将示例图形上传到此处(A2008或更早版本)
我不太清楚你在说格式化的多行文字
 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 18:11 , Processed in 0.529766 second(s), 72 queries .

© 2020-2025 乐筑天下

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