- 积分
- 15190
- 明经币
- 个
- 注册时间
- 2003-9-13
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 作者 于 2003-10-11 10:00:07 编辑
大家经常讨论VBA与数据库,却有很少人讨论VBA与EXCEL,我在学这方面的内容,感觉势单力薄啊,特发表下面一段范例程序,望引起各位朋友的兴趣一起探讨之。
本程序是查找块参考的属性,并将取得的属性值转到EXCEL中。
Sub vbaexcelsj()
'定义excel.application类型的对象变量
Dim excelobj As Excel.Application
Dim excelsheet As Object
Dim excelworkbook As Object
Dim rownumber As Integer
Dim headertf As Boolean
Dim elemobj As AcadEntity
Dim arraydata As Variant
'启动excelobj
Set excelobj = New Excel.Application
'创建工作簿和寻找作用中的表
Set excelworkbook = excelobj.workbooks.Add
Set excelsheet = excelobj.activesheet
excelworkbook.SaveAs "attribute.xls"
rownumber = 1
hesdertf = False
'遍历寻找所有图块
For Each elemobj In ThisDrawing.ModelSpace
With elemobj
' 发现块参考时,检查其属性
If StrComp(.EntityName, "acdbblockreference", 1) = 0 Then
If .HasAttributes Then
'取得属性值
arraydata = .GetAttributes
'复制属性的标签字符串到excel
For appcount = LBound(arraydata) To UBound(arraydata)
If headertf = False Then
If StrComp(arraydata(appcount).EntityName, "acdbattribute", 1) = 0 Then
excelsheet.cells(rownumber, appcount + 1).Value = arraydata(appcount).TagString
End If
End If
Next appcount
rownumber = rownumber + 1
For appcount = LBound(arraydata) To UBound(arraydata)
excelsheet.cells(rownumber, appcount + 1).Value = arraydata(appcount).TextString
Next appcount
headertf = True
End If
End If
End With
Next elemobj
excelobj.Application.Quit
End Sub
在本版块成立之际,现将源程序也传上来
VBA开发指南 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|