objSelection As AeccSelectionSet,用户定义类型未定义
时间: 2023-08-21 09:07:49 浏览: 159
excel提示用户定义类型未定义怎么办.docx
这个错误可能是因为您没有正确引用 AutoCAD Civil 3D 的类型库而产生的。您可以尝试按照以下步骤进行修改:
1. 在 Visual Basic Editor 中选择“工具”菜单下的“引用”。
2. 在“引用”对话框中找到并勾选 “AutoCAD Civil 3D XX.X Object Library”,其中 XX.X 为您使用的 AutoCAD Civil 3D 版本号,然后单击“确定”。
3. 将代码中的 `AeccSelectionSet` 修改为 `AcadSelectionSet`。修改后的代码如下:
```
Sub ExportToExcel()
Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Dim objWorksheet As Excel.Worksheet
Dim objSelection As AcadSelectionSet
Dim objEntity As AcadEntity
'选择需要导出的图元
Set objSelection = ThisDrawing.SelectionSets.Add("MySelection")
objSelection.Select acSelectionSetAll, , , Array()
'创建Excel工作簿和工作表
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets.Add
'输入表头
objWorksheet.Cells(1, 1).Value = "图元类型"
objWorksheet.Cells(1, 2).Value = "图元名称"
objWorksheet.Cells(1, 3).Value = "图元颜色"
'循环读取图元信息并输入到Excel表中
For Each objEntity In objSelection
objWorksheet.Cells(objWorksheet.UsedRange.Rows.Count + 1, 1).Value = objEntity.ObjectName
objWorksheet.Cells(objWorksheet.UsedRange.Rows.Count, 2).Value = objEntity.Name
objWorksheet.Cells(objWorksheet.UsedRange.Rows.Count, 3).Value = objEntity.TrueColor.ColorIndex
Next objEntity
'保存Excel工作簿并退出
objWorkbook.SaveAs "C:\MyExcelFile.xlsx"
objWorkbook.Close
objExcel.Quit
'清除选择集
objSelection.Delete
End Sub
```
修改后的代码应该可以正常运行了。
阅读全文