VBA:AutoCAD批量提取文本,并按区间排序,复制
标签:
vba宏autocad文本提取整数区间排序 |
分类: 效率提升 |
适用于提取cad图纸里的文本,并进行排序(针对整型数据)。按区间分类,并自动复制到剪贴板中。可适当修改,提高工作效率。
步骤及效果:
1、运行vba宏,框选数字文本框
![VBA:AutoCAD批量提取文本,并按区间排序,复制]()
2、空格继续执行后,宏会自动排序并复制到剪贴板中。在excel中粘贴的内容如下图,第一格为排
序好后的数字区间及组合,第二个为cad选框选中文本的总数。
![VBA:AutoCAD批量提取文本,并按区间排序,复制]()
VBA代码如下:
_____________________________________________________________________
Private Type
mystr
str As String
x As Double
y As Double
End Type
Sub TQ()
On Error
Resume Next
Dim i As
Integer
Dim j As
Integer
Dim m As Integer
Dim step As Integer
Dim E As
Excel.Application, B As Workbook, S As Worksheet
Dim SS As
AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As
Variant
Dim search
As String
Dim
mstrcount As Integer
Dim
lengthstr As Integer
Dim block(0
To 50) As Integer
Dim
seltext(0 To 255) As mystr
Dim counter
As Integer
'Dim midnum
As Double
Dim midstr
As mystr
search =
"\pt1;"
'下面定义选择集过滤器列表为多行文字或单行文字
FT(0) = -4:
FD(0) = "<or"
FT(1) = 0:
FD(1) = "mtext"
FT(2) = 0:
FD(2) = "text"
FT(3) = -4:
FD(3) = "or>"
'创建选择集
Set SS =
ThisDrawing.SelectionSets.Add("SS")
'在屏幕上选择多行文字或单行文字对象"
SS.SelectOnScreen FT, FD
'如果选择集不为空则运行以下代码
If SS.Count
> 0 Then
'运行EXCEL程序
Set E = New Excel.Application
'在EXCEL中插入工作薄
Set B = E.Workbooks.Add
Set S = B.ActiveSheet
'设置一列宽度
S.Columns(1).ColumnWidth = 30
'显示EXCEL程序
E.Visible = False
'把所有字符串及坐标保存起来
For Each T In SS
seltext(i).str = T.TextString
i = i + 1
Next
counter = i - 1
'把单行文字或多行文字的内容写入表格
'对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格
步骤及效果:
1、运行vba宏,框选数字文本框
2、空格继续执行后,宏会自动排序并复制到剪贴板中。在excel中粘贴的内容如下图,第一格为排
序好后的数字区间及组合,第二个为cad选框选中文本的总数。
VBA代码如下:
_____________________________________________________________________
End Type

加载中…