将Autocad文本复制到Excel usi
你好这是奎师那。。。。有谁能帮助我如何使用VBA将Autocad文本复制到Excel
此文件将被复制到现有的Excel文件中
Option Explicit
' Requires:
' Microsoft Excel Object Library
' go to Tools->Options->General Tab and check 'Break on Unhandled Errors'
Const xlFileName As String = "C:\TestFile.xls" '<--change existing file name here
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Public Sub ExportText()
Dim oSset As AcadSelectionSet
Dim oEnt As AcadEntity
Dim oText As AcadText
Dim i As Long
Dim ftype(0) As Integer
Dim fdata(0) As Variant
ftype(0) = 0: fdata(0) = "TEXT"
Dim dxftype As Variant
Dim dxfdata As Variant
dxftype = ftype
dxfdata = fdata
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Dim xlApp As Object
Dim xlBook As Workbook
Dim xlSheet As Worksheet
Dim lngRow As Long, lngCol As Long
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err <> 0 Then
Err.Clear
Set xlApp = CreateObject("Excel.Application")
If Err <> 0 Then
MsgBox "Impossible to run Excel.", vbExclamation
End
End If
End If
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
On Error GoTo Err_Control
With ThisDrawing.SelectionSets
While .Count > 0
.Item(0).Delete
Wend
Set oSset = .Add("$Texts$")
End With
oSset.SelectOnScreen dxftype, dxfdata
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(xlFileName)
Set xlSheet = xlBook.Sheets(1)
xlApp.ScreenUpdating = False
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
lngRow = 1: lngCol = 1
For Each oEnt In oSset
Set oText = oEnt
xlSheet.Cells(lngRow, lngCol).Value = oText.TextString
lngRow = lngRow + 1
Next oEnt
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
xlSheet.Columns.HorizontalAlignment = xlHAlignLeft
xlSheet.Columns.AutoFit
xlApp.ScreenUpdating = True
xlBook.Save
xlBook.Close
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
xlApp.Application.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
MsgBox "Done"
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Err_Control:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
~'J'~ 谢谢你的密码 尊敬的各位:,
很抱歉从根级别开始。您提到的代码是在ACAD 2004的“工具”>“宏”>“宏”中复制的。但它仅限于“作为工作簿的手册”
错误信息如下:
编译错误:
未定义用户定义的类型
出了什么问题。
您提到的宏是否要复制到excel vba中?
我也试过了,同样的结果
我检查了Microsoft excel库。在excel中 这是一个拼写错误
改用这些行
Dim xlApp作为对象
将xlBook作为对象
将xlSheet作为对象
~'J'~ 现在它停止在xlSheet。柱。水平对齐=xlHAlignLeft
我还尝试了xlSheet。柱。水平对齐=xlLeft
接下来,我尝试将这条线作为一个整体删除。它成功了。
运行如下:
命令:\u vbarun
选择对象:指定对角点:137
过滤出137个。在那之后,这条消息似乎已经完成了。
但在测试文件中找不到任何内容。我这边出了什么问题? 我意识到,实际上它只知道dtext命令
更改数值上的所有Excel常量
1、打开任何Excel文件
2.Alt+F11进入VBA编辑器
3、打开即时窗口
4.输入您需要的excel常数并提问
在前面标记
即。:
?xl左
然后按Enter键
-4131
对于您使用的所有xl常量,方法相同
HTH公司
~'J'~ 有没有办法只获取多行文本的文本?我得到了文本中的所有代码。例如文本。文本文本\P更多文本。更多文本。此外,如果文本带有下划线等,则包含代码%%U。是否可以通过某种方式删除这些代码?
谢谢
杰米奇
以压缩格式将示例图形上传到此处(A2008或更早版本)
我不太清楚你在说格式化的多行文字
~'J'~
页:
[1]