找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 786|回复: 5

[求助]:如何得到文本的内容传到EXCEL中去?

[复制链接]
发表于 2003-3-1 16:36:47 | 显示全部楼层 |阅读模式

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

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

×
我经常画的图纸有许多房间名,有时想将房间名写至EXCEL文件中
只好一个个的打字(2遍了),
我想编一个程序,顺序选择图中的文本,将文本的内容一个个传到EXCEL文件的同一列的顺序行中,
不知该程序如何实现?
希大侠相助。

我是搞净化、钢结构图纸的,前一阶段钻研了一段时间LISP编程,
学会了LISP程序的基本编制,自己也编了一些自己实用的程序,对VBA编程不太了解。

如有人需净化或钢结构的一些图纸作参考的话,可与我联系。
xyzjint_cn@sina.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-3-1 21:13:15 | 显示全部楼层
将你的要求、实现方法、样例等相关资料上传或者贴出来,介绍明白一点,大家才能根据情况来编程实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-3-3 12:29:04 | 显示全部楼层

上传

我现有一平面图如图所示,
所需程序的功能为:自动(或一个个的选取文本)将图中文本为黄色的房间的房间名(如男二更、女二更等)及由程序自动根据房间名四周的墙线计算出的房间面积写入EXCEL文件的行中,

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

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-3-3 19:37:50 | 显示全部楼层
下面是根据你的要求写的一个VBA程序,房间面积的求法我不懂,你可以自己考虑一下。

  1.   [FONT=courier new]
  2. Sub test()
  3.     On Error Resume Next
  4.     '创建选择集
  5.     Dim SSetObj As AcadSelectionSet
  6.     Set SSetObj = ThisDrawing.SelectionSets("Acad2Excel")
  7.     If Err.Number <> 0 Then
  8.         Err.Clear
  9.         Set SSetObj = ThisDrawing.SelectionSets.Add("Acad2Excel")
  10.     End If
  11.     '清空选择集
  12.     SSetObj.Clear
  13.     '创建过过滤机制,只选择颜色为黄色的文本
  14.     Dim fType(0 To 1) As Integer
  15.     Dim fData(0 To 1) As Variant
  16.     fType(0) = 0: fData(0) = "*Text"
  17.     fType(1) = 62: fData(1) = acYellow
  18.     SSetObj.Select acSelectionSetAll, , , fType, fData
  19.     '如果没有选择到实体,则中断程序的运行
  20.     If SSetObj.Count = 0 Then
  21.         Set SSetObj = Nothing
  22.         Exit Sub
  23.     End If
  24.     '启动Excel
  25.     Dim xlApp As Object
  26.     Set xlApp = GetObject(, "Excel.Application")
  27.     If Err.Number <> 0 Then
  28.         Err.Clear
  29.         Set xlApp = CreateObject("Excel.Application")
  30.         If Err.Number <> 0 Then
  31.             Set SSetObj = Nothing
  32.             MsgBox "无法启动 Excel97 或者 Excel200 !"
  33.             Exit Sub
  34.         End If
  35.     End If
  36.     '将Excel应用程序置为显示状态,默认为不显示。
  37.     xlApp.Visible = True
  38.     '启动一个新的Excel应用程序时,默认没有打开工作簿。
  39.     If xlApp.Workbooks.Count = 0 Then xlApp.Workbooks.Add
  40.     '添加一个新的工作表
  41.     Dim xlSheet As Object
  42.     Set xlSheet = xlApp.ActiveWorkbook.Worksheets.Add
  43.     xlSheet.Range("B2") = "房间名"
  44.     xlSheet.Range("C2") = "面积"
  45.     Dim i As Integer
  46.     For i = 0 To SSetObj.Count - 1
  47.         xlSheet.Range("A3").Offset(i, 0) = i + 1
  48.         xlSheet.Range("B3").Offset(i, 0) = SSetObj(i).TextString
  49.         xlSheet.Range("C3").Offset(i, 0) = "" '这里添加房间面积
  50.     Next
  51.     Set SSetObj = Nothing
  52.     Set xlSheet = Nothing
  53.     Set xlApp = Nothing
  54. End Sub
  55.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-3-5 08:55:34 | 显示全部楼层

LISP程序?

因为我不用R2OOO制图而经常用R14,而我不知VBA程序如何在R14下运行,并且VBA我不太懂,略懂一些LISP编程,
所以不知该程序用LISP程序实现该如何?
谢谢版主为我解难!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-3-5 19:36:03 | 显示全部楼层
在VB中,用如下的代码,先获取AutoCAD的应用程序级对象,随后用一文档级的对象代替VBA中的ThisDrawing即可,以后的代码就几乎一样。

  1.   [FONT=courier new]
  2.     Dim acadApp As Object
  3.     Set acadApp = GetObject(, "AutoCAD.Application")
  4.     If Err.Number <> 0 Then
  5.         Err.Clear
  6.         MsgBox "请先启动 AutoCAD R14 或者 AutoAD2000、AutoCAD2002 !"
  7.         Exit Sub
  8.     End If
  9.     Dim acadDoc as Object
  10.     Set acadDoc = acadApp.ActiveDocument
  11.   [/FONT]

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-6 19:25 , Processed in 0.259527 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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