找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1405|回复: 11

[求助]:cad中的text怎么转换到excel里面

[复制链接]
发表于 2004-11-8 09:37:54 | 显示全部楼层 |阅读模式

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

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

×
比如在cad中有一个明细表20行,5列!(或者不确定行不确定列)
怎么才能把它转换到excel中也是对应行列(还要注意边框也要对应)
那位大侠有没有办法通过vba实现啊!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-9 14:17:16 | 显示全部楼层
明细表是什么形式的?
可以用TureTable试试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-10 15:24:15 | 显示全部楼层
问一下 turetable是什么东西啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-12 08:43:51 | 显示全部楼层
主要是CAD表格中各行各列的排列要有比较明显的规侓,这样的话可以通过判断文本的插入点从而取出行和列,然后再取出传到Excel中去
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-11-14 11:23:28 | 显示全部楼层
先试试下面的代码


  1. Sub test3()
  2. On Error Resume Next
  3.     Dim ss As AcadSelectionSet
  4.     ThisDrawing.SelectionSets("TlsSel").Delete
  5.     Set ss = ThisDrawing.SelectionSets.Add("TlsSel")
  6.     Dim ft(0) As Integer, fd(0)
  7.     ft(0) = 0: fd(0) = "Line"
  8.     ss.SelectOnScreen ft, fd
  9.    
  10.     Dim SLines As New Collection
  11.     Dim HLines As New Collection
  12.     For Each i In ss
  13.         If IsEqual(i.Angle, 0) Or IsEqual(i.Angle, Atn(1) * 4) Then
  14.             HLines.Add i
  15.         ElseIf IsEqual(i.Angle, Atn(1) * 2) Or IsEqual(i.Angle, Atn(1) * 6) Then
  16.             SLines.Add i
  17.         End If
  18.     Next i
  19.    
  20.     Dim bJudge As Boolean
  21.    
  22.     Dim Xs As New Collection
  23.     For Each i In SLines
  24.         bJudge = True
  25.         pnt = i.StartPoint
  26.         For j = 1 To Xs.Count
  27.             If pnt(0) = Xs(j) Then
  28.                 bJudge = False
  29.                 Exit For
  30.             ElseIf pnt(0) < Xs(j) Then
  31.                 Xs.Add pnt(0), , j
  32.                 bJudge = False
  33.                 Exit For
  34.             End If
  35.         Next j
  36.         If bJudge Then
  37.             Xs.Add pnt(0)
  38.         End If
  39.     Next i
  40.    
  41.     Dim Ys As New Collection
  42.     For Each i In HLines
  43.         bJudge = True
  44.         pnt = i.StartPoint
  45.         For j = 1 To Ys.Count
  46.             If pnt(1) = Ys(j) Then
  47.                 bJudge = False
  48.                 Exit For
  49.             ElseIf pnt(1) < Ys(j) Then
  50.                 Ys.Add pnt(1), , j
  51.                 bJudge = False
  52.                 Exit For
  53.             End If
  54.         Next j
  55.         If bJudge Then
  56.             Ys.Add pnt(1)
  57.         End If
  58.     Next i
  59.    
  60.     For i = 1 To Xs.Count - 1
  61.         For j = 1 To Ys.Count - 1
  62.             ss.Clear
  63.             ft(0) = 0: fd(0) = "*Text"
  64.             ss.Select acSelectionSetWindow, CreatePoint(Xs(i), Ys(j)), CreatePoint(Xs(i + 1), Ys(j + 1)), ft, fd
  65.             MsgBox ss(0).TextString
  66.         Next j
  67.     Next i
  68.    
  69. End Sub

  70. Public Function CreatePoint(Optional ByVal X As Double = 0#, Optional ByVal Y As Double = 0#, Optional ByVal Z As Double = 0#)
  71.    
  72.     Dim pnt(2) As Double
  73.     pnt(0) = X: pnt(1) = Y: pnt(2) = Z
  74.    
  75.     CreatePoint = pnt
  76.    
  77. End Function

  78. Function IsEqual(ByVal Value1 As Double, ByVal Value2 As Double) As Boolean

  79.     IsEqual = Abs(Value1 - Value2) < 10 ^ -8
  80.    
  81. End Function


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

使用道具 举报

 楼主| 发表于 2004-11-15 09:38:41 | 显示全部楼层
我加载再autocad里面 运行筐选之后出现每一个文本内容的对话框 一系列确定之后没有反应 怎么回事啊,你的程序运行步骤是什么啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-15 09:47:36 | 显示全部楼层
程序选择的是线而不是文字,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-21 10:08:46 | 显示全部楼层
给我一个执行的步骤好不好?或者一个例子啊 我很急啊 谢谢大侠
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-28 16:23:42 | 显示全部楼层
xumaling,你好,你试试下面程序,按你的行列名称作一下改动
Private Sub strtexcel()                                             '启动excel程序,引用microsoft execl 9.0 object libraty
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
On Error Resume Next
Set xlapp = GetObject(, "Excel.Application")
If Err Then
   Err.Clear
   Set xlapp = CreateObject("Excel.Application")
   If Err Then
      MsgBox "不能启动excel"
      Exit Sub
   End If
End If
Set xlbook = xlapp.Workbooks.Add
Set xlsheet = xlbook.activesheet
xlapp.Visible = True
xlsheet.Cells(1, 1) = "图号"
xlsheet.Cells(1, 2) = "名称"
xlsheet.Cells(1, 3) = "数量"
Dim i As Integer
For i = 0 To UBound(a, 1)
  With ThisDrawing.ModelSpace(i)
For j = 1 To 8
    xlsheet.Cells(i + 2, j) = a(i, j)
  Next
  End With
Next
End Sub
Private Sub CommandButton1_Click()

'选择文字并给数组a(i,j)变量赋值
   TextBox6.Text = ""
   TextBox7.Text = ""
   TextBox8.Text = ""
   Me.Hide
i = i + 1
For j = 1 To 3
  Select Case j
    Case 1
      aa = "图号"
    Case 2
      aa = "名称"
    Case 3
      aa = "材料"
    Select Case j
    Case 1                  '拾取文字及插入点
     On Error Resume Next
      selecttx
     TextBox1.Text = a(i, j)
      If TextBox1.Text = "" Then
      a(i, j) = TextBox1.Text
      End If
    Case 2
     On Error Resume Next
      selecttx
      TextBox2.Text = a(i, j)
    If TextBox2.Text = "" Then
       selecttx
      If TextBox2.Text = "" Then
      a(i, j) = TextBox2.Text
      End If
     End If
    Case 3
     On Error Resume Next
      selecttx
      TextBox3.Text = a(i, j)
     If TextBox3.Text = "" Then
       selecttx
       If TextBox3.Text = "" Then
      a(i, j) = TextBox3.Text
      End If
     End If

Next
Me.Show
End Sub
Function selecttx()
ThisDrawing.Utility.GetEntity tx, pickpoint, aa:
tx.Highlight (True)
a(i, j) = tx.TextString
End Function
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-5-10 17:21:17 | 显示全部楼层
好东西,先收下。
试了一下,看来不能满足自己的要求,只能自己编程了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 07:18 , Processed in 0.192558 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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