Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
ngoctanvt

Nhờ Kiểm Tra Lỗi Vba

Các bài được khuyến nghị

Nhờ các anh kiểm tra giúp em chương trình VBA này.

Chương trình có chức năng: chọn Polyline gốc, sau đó chọn các Polyline khác có cùng diện tích với Polyline gốc, gán layer của Polyline gốc cho các Polyline chọn sau. Vì trong bản vẽ có nhiều nhóm Polyline có diện tích bằng nhau nhưng nằm trên các layer khác nhau & ở các vị trí khác nhau. Dùng lệnh MA thì rất lâu.

Em xin cảm ơn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái thú của lập trình là tự mình tìm ra được lỗi của chương trình.

Bạn thử Debug chưa ?

Gợi ý

15454_addtext_error.png

Mình cũng chỉ là đang học thôi, đây là những bài mình đang tập làm nên cũng chưa biết debug

Đang cố gắng học từ các bài thực hành. Cũng cố gắng suy luận mà ko ra vì cũng chưa biết nhiều

Nếu như bạn hướng dẫn lỗi ở 2 chỗ này thì đúng là cái mình ko biết rồi. vì như mình nghĩ đối với lineobject nó dùng vậy thì pl nó cũng tương tự. Khong biết cú pháp có gì khác không?

Theo mình nghĩ chỗ Stapt ở dưới nó là tham chiếu điểm chèn đã được dịnh nghĩa ở trên

Còn chỗ Stapt trên thì mình thấy nó cũng chỉ là 1 ký hiệu thôi, nó tương tự phép gán pt1=ThisDrawing.Ultility.Getpoint...

Nhờ bạn chỉ rõ hơn hoặc sửa giúp mình, mình sẽ học được từ bài của bạn.

Cảm ơn bạn 

Chắc bạn gia_bach bận bịu quá. bạn Ketxu chỉ giúp mình được không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Gửi bạn thông tin code đây

 

Sub Match_Properties_Polyline()

 

    On Error Resume Next

    Dim varPick As Variant

    Dim SourceArea As Double

    Dim SourceLayerStr As String

    Dim SS As AcadSelectionSet

    Dim EntObj As AcadEntity

    Dim SourceObj As AcadLWPolyline

   

    ThisDrawing.Utility.GetEntity EntObj, varPick, "Pick source LWPolyline"

    'Ktra xem doi tuong Pick co phai LWpolyline ko

    If TypeOf EntObj Is AcadLWPolyline Then

        Set SourceObj = EntObj

        SourceArea = SourceObj.Area

        SourceLayerStr = SourceObj.Layer

    Else

        Exit Sub

    End If

   

    '-------------------------------------------------

    Set SS = ThisDrawing.SelectionSets("Destination")

    If Err <> 0 Then

            Err.Clear

            Set SS = ThisDrawing.SelectionSets.Add("Destination")

        Else

            SS.Clear

        End If

    Dim FilterType(0) As Integer

    Dim FilterData(0) As Variant

    FilterType(0) = 0: FilterData(0) = "LWPolyline"

    SS.SelectOnScreen FilterType, FilterData

   

    Dim DesObj As AcadLWPolyline

    For Each DesObj In SS

        If DesObj.Area = SourceArea Then

            DesObj.Layer = SourceLayerStr

            DesObj.Update

        End If

    Next

    SS.Delete

   

End Sub

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình cũng chỉ là đang học thôi, đây là những bài mình đang tập làm nên cũng chưa biết debug

Đang cố gắng học từ các bài thực hành. Cũng cố gắng suy luận mà ko ra vì cũng chưa biết nhiều

Nếu như bạn hướng dẫn lỗi ở 2 chỗ này thì đúng là cái mình ko biết rồi. vì như mình nghĩ đối với lineobject nó dùng vậy thì pl nó cũng tương tự. Khong biết cú pháp có gì khác không?

Theo mình nghĩ chỗ Stapt ở dưới nó là tham chiếu điểm chèn đã được dịnh nghĩa ở trên

Còn chỗ Stapt trên thì mình thấy nó cũng chỉ là 1 ký hiệu thôi, nó tương tự phép gán pt1=ThisDrawing.Ultility.Getpoint...

Nhờ bạn chỉ rõ hơn hoặc sửa giúp mình, mình sẽ học được từ bài của bạn.

Cảm ơn bạn 

Chắc bạn gia_bach bận bịu quá. bạn Ketxu chỉ giúp mình được không?

không có ai giúp dc mình sao? là các bạn ko có hứng giúp hay ko giúp dc vậy.

Vậy trên diễn đàn có bác nào dạy được BVA không mình đăng ký học.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

không có ai giúp dc mình sao? là các bạn ko có hứng giúp hay ko giúp dc vậy.

Vậy trên diễn đàn có bác nào dạy được BVA không mình đăng ký học.

Có đấy bạn. Hiện tại thì chưa có khóa học lập trình cho autocad, bên mình sẽ cho triển khai trong thời gian tới. Tạm thời mình giới thiệu bạn khóa học lập trình VBA cơ bản và khóa học lập trình VBA Excel trước nhé.  :)  :)  :)

 

Khóa học lập trình VBA cơ bản: http://www.huytraining.com/course/visual-basic-xay-dung-tap-1-co-ban

Khóa học lập trình VBA Excel: http://www.huytraining.com/course/lap-trinh-visual-basic-xay-dung-tap-2-ung-dung-cho-excel

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×