Giải thích code: Xuất dữ liệu (Text) từ Autocad ra Excel

  • Thread starter Thread starter echo07
  • Ngày gửi Ngày gửi
Liên hệ QC

echo07

Nguyệt Hà
Tham gia
24/8/07
Bài viết
436
Được thích
318
Em cần code để xuất dữ liệu (Text) từ Autocad ra Excel, em cop được đoạn code này ở bên Cadviet.
Mã:
[SIZE="2"] 
[B]Sub Ch12_Extract()[/B]
 Dim Excel As Excel.Application
 Dim ExcelSheet As Object
 Dim ExcelWorkbook As Object
 
 Dim RowNum As Integer:              Dim Header As Boolean
 Dim elem As AcadEntity:              Dim Array1 As Variant
 Dim Count As Integer
 
[COLOR="Blue"]' Launch Excel.[/COLOR]
 Set Excel = New Excel.Application
 
[COLOR="Blue"]' Create a new workbook and find the active sheet.[/COLOR]
 Set ExcelWorkbook = Excel.Workbooks.Add
 Set ExcelSheet = Excel.ActiveSheet
 ExcelWorkbook.SaveAs "Attribute.xls"
 
 RowNum = 1:                       Header = False
[COLOR="Blue"]' Iterate through model space finding[/COLOR]
[COLOR="Blue"]' all block references.[/COLOR]
 For Each elem In ThisDrawing.ModelSpace
        With elem
 [COLOR="Blue"]' When a block reference has been found,[/COLOR]
[COLOR="Blue"]' check it for attributes[/COLOR]
                If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
                         If .HasAttributes Then
[COLOR="Blue"]' Get the attributes[/COLOR]
                                Array1 = .GetAttributes
[COLOR="Blue"]' Copy the Tagstrings for the[/COLOR]
[COLOR="Blue"]' Attributes into Excel[/COLOR]
                                For Count = LBound(Array1) To UBound(Array1)
                                      If Header = False Then
                                              If StrComp(Array1(Count).EntityName, _
                                                     "AcDbAttribute", 1) = 0 Then
                                                    ExcelSheet.Cells(RowNum, _
                                                           Count + 1).value = _
                                                           Array1(Count).TagString
                                        End If:                          End If
                                  Next Count
                                  RowNum = RowNum + 1
                                  For Count = LBound(Array1) To UBound(Array1)
                                         ExcelSheet.Cells(RowNum, Count + 1).value _
                                               = Array1(Count).textString
                                  Next Count
                                  Header = True
                End If:                            End If
          End With
    Next elem
 Excel.Application.Quit
 [B]End Sub [/B][/SIZE]

Nghe nói mã lệnh VBA này gọi Excel lên, sau đó add một Shet và saveas với tên file là Attribute.xls sau đó quét qua tất cả các đối tượng của AutoCAD, tìm các block, kiểm tra xem nó có Attribute không, nếu có thì viết giá trị của từng attribute vào các ô của excel. Mỗi giá trị một ô, mỗi block một dòng. Sau đó thì close chương trình Excel.
Nhưng em chạy thử thì Cad báo lỗi. Thật sự em k biết về VBA nên chịu chết. Các cao thủ chỉ giùm em nha, nhân tiện em up file cad lên với yêu cầu trong đó. các bác vui lòng chỉ giáo. Thanks.


By hai2hai: Tất cả những tiêu đề không rõ ràng như: "Giải thích giùm code" trong box này từ nay trở về sau sẽ bị xóa thẳng chứ ko được rename lại như lần này đâu. Mọi người chú ý là ko trả lời bài vi phạm nội quy nhé.
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Lỗi là do chưa khai báo thư viện liên kết động.
Ban thực hiện theo cách sau: Đầu tiên, ấn Alt+ F11 để vào cửa sổ VBE, chọn References trong menu Tools của cửa sổ VBE (hình vẽ) và chọn Microsoft Excel 11 Object Library. Giá trị số trong các tham chiếu trên phụ thuộc vào phiên bản Office nên có thể khác nhau giữa các máy tính, ví dụ trên sử dụng Office 2003. Khi đã khai báo tham chiếu như trên, thư viện đối tượng Excel dễ dàng được hiển thị trong cửa sổ VBA bởi chức năng trợ giúp Auto List Members.
Hinh7.jpg

Tham chiếu tới thư viện Excel từ VBA trong AutoCad


Xem thêm ở đây:

http://www.giaiphapexcel.com/forum/showthread.php?t=11105
 
Upvote 0
Em rất quan tâm đến vấn đề này.NHưng quả thực em mới học lập trình nên chưa biết gì cả,nên bác nào có thể giới thiệu cho em cuốn sách nào ứng dụng VB6.0 trong lập trình Exel không?Hoặc là có bài hướng dẫn cho người mới học thì post lên cùng tham khảo.
Xin cảm ơn.

To AHungTK: Bạn xem qua quyễn sách của PhanTuHuong xem có thích hợp với bạn không (?)
 
Upvote 0
làm sao mua được cuốn sách của bác Hường ?
làm ơn chỉ dùm
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom