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

Function Sum Text

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

Bác nào có module cộng text theo cột cho e xin với ^^ Các text có chung tọa độ x (chính xác).Nếu có nhiều cột,e muốn quét 1 phát ra kết quả từng cột riêng biệt có đc k ạ ^^

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ình hình là e mới tham gia diễn đàn, e thix nhất là chủ đề VBA :undecided: . Nhưng sao thấy chủ đề này ít sôi nổi quá, sáng lên xem, chiều lên xem, ngày kia lên xem cũng là nhiu đó..., đành tìm bài cũ post chơi.

Bác nào có module cộng text theo cột cho e xin với ^^ Các text có chung tọa độ x (chính xác).Nếu có nhiều cột,e muốn quét 1 phát ra kết quả từng cột riêng biệt có đc k ạ ^^

http://www.cadviet.com/upfiles/3/cong_text.rar

Bác down về giải nén rồi load 2 file trong đó vào cad. Đánh lệnh "ctext" -->chọn text -->enter-->chọn điểm bất kì xem thử kết quả có theo ý bác không nhé!

  • Vote tăng 1

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

Hề hề.Tks bác đã giúp đỡ e.Vậy là có thêm người bàn luận rồi..^^

ps : hicíc,srr bác vì ý đồ của e là cộng giá trị,mà e trình bày không rõ,thành ra bác lại giúp e ở mảng ghép text ^^ Sơ suất quá ^^.Bác đổi hướng bài toán giúp e với

PS 2 : Mà điểm insert text kết quả cuối cùng có lẽ không ổn bác ạ,theo e trình bày theo hàng cột đã có của bảng dữ liệu thì hay hơn.Mong bác chỉ dẫn thêm

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ộng text theo 1 cột thì không khó.

 

Có thể mở rộng bài toán một chút như sau:

Chọn các text có dạng tựa bảng, các tọa độ hoàn toàn không giống nhau chính xác như:

Các text cùng cột có X lệch nhau một ít, tương tự Y cùng hàng có thể không giống hệt nhau.

 

Ảnh minh họa:

cadu.png

 

Sau đó sắp xếp lại theo hàng theo cột, thành một mảng 2 chiều chứa các text, và lúc đó có thể thực hiện phép tính.

VD như SUM vào dưới hàng cuối, or thêm cột SUM bên phải.

  • Vote tăng 1

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
Hề hề.Tks bác đã giúp đỡ e.Vậy là có thêm người bàn luận rồi..^^

ps : hicíc,srr bác vì ý đồ của e là cộng giá trị,mà e trình bày không rõ,thành ra bác lại giúp e ở mảng ghép text ^^ Sơ suất quá ^^.Bác đổi hướng bài toán giúp e với

PS 2 : Mà điểm insert text kết quả cuối cùng có lẽ không ổn bác ạ,theo e trình bày theo hàng cột đã có của bảng dữ liệu thì hay hơn.Mong bác chỉ dẫn thêm

Yêu cầu của bạn đưa ra còn dễ hơn cái mình làm. Không cần phải sắp xếp thứ tự text theo tọa độ trước khi cộng

Đây là file mình đã sửa theo ý bạn

http://www.cadviet.com/upfiles/3/cong_gia_tri_text.rar

Mở rộng thêm: ví dụ về viêc cần thiết phải sắp xếp tọa độ theo thứ tự đó là bài toán đánh tên tọa cọc. Mình đã từng làm 1 module: quét bản vẽ cọc-->tự động đánh tên cọc theo thứ tự từ trái qua phải, từ trên xuống dưới trên bản vẽ và xuất tọa độ cọc ra excel.

  • Vote tăng 1

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
Bác check lại xem sao, chứ e quét 1 hát rồi thấy nó im lặng luôn ^^

Mình check rồi. Down về load lại thấy ok mà. bạn add yahoo trao đổi cho tiện nhé:khatamxd@yahoo.com

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
Haiza,e test mãi vẫn là sự im lặng ^^.Pm YH hok thấy bác tlời ạ

Sori bạn, mình ít lên yahoo nên ko bít. Đánh lệnh "ctext"-->chọn text --> enter. Không bít bác có làm đúng ko. Hay là bạn chọn text xong ngồi đợi kết quả nhỉ^^ :undecided: .

Góp ý thêm: Để kiểm tra lại bạn có thể cho chương trình chạy từng lệnh(F8) để theo dõi các biến nó biến đổi như thế nào, khi đó sẽ bít ngay lổi sai nằm ở đâu

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

^^.Hì..Nó lúc chạy lúc không,lúc ra kết quả lúc lại lặng im, thế mới lạ bác ạ.

-Hơn nữa code chưa xét đến mức độ lệch theo phương x,nên chỉ ra kết quả như mong đợi trong trường hợp tất cả các text đã được căn lề trái. (căn phải,căn giữa đều bị tách)

-E không thể làm j được vì " vẫn còn đó password",nên hok bít nghiên cứu với lại F8 mần răng bi chừ ^^

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
^^.Hì..Nó lúc chạy lúc không,lúc ra kết quả lúc lại lặng im, thế mới lạ bác ạ.

-Hơn nữa code chưa xét đến mức độ lệch theo phương x,nên chỉ ra kết quả như mong đợi trong trường hợp tất cả các text đã được căn lề trái. (căn phải,căn giữa đều bị tách)

-E không thể làm j được vì " vẫn còn đó password",nên hok bít nghiên cứu với lại F8 mần răng bi chừ ^^

PS1:Thế mà ngay ở đầu topic bạn đã nói cộng các text có chung tọa độ X, còn nhấn mạnh là chính xác nữa chứ.

PS2:Cái này thì ko đúng với bạn ketxu rồi. Xem lại link này đi nhé!hê hê

http://www.cadviet.com/forum/index.php?showtopic=19199

ketxu:Thực chất việc xóa pass của DVB file rất đơn giản,nhưng mình nghĩ không nên show thì tốt hơ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

Tại sao CV member ít mặn mà với VBA ?

Híc,có vẻ CV member ít mặn mà với VBA :undecided:
...................

Nhưng sao thấy chủ đề này ít sôi nổi quá, sáng lên xem, chiều lên xem, ngày kia lên xem cũng là nhiu đó..., đành tìm bài cũ post chơi.

............

 

..............

Góp ý thêm: Để kiểm tra lại bạn có thể cho chương trình chạy từng lệnh(F8) để theo dõi các biến nó biến đổi như thế nào, khi đó sẽ bít ngay lổi sai nằm ở đâu

 

Câu trả lời là :

.....................

-E không thể làm j được vì " vẫn còn đó password",nên hok bít nghiên cứu với lại F8 mần răng bi chừ ^^

 

Bác nào có module cộng text theo cột cho e xin với ^^ Các text có chung tọa độ x (chính xác).Nếu có nhiều cột,e muốn quét 1 phát ra kết quả từng cột riêng biệt có đc k ạ ^^

 

Tham khảo : Tính tổng giá trị Text đã chọn.

Sub TotalText()
   Dim AcadTxt As AcadText
   Dim ss As AcadSelectionSet
   Dim TotalValue As Double
   On Error Resume Next
   Set ss = ThisDrawing.SelectionSets.Add("TextObj")
   ss.SelectOnScreen

   For Index = 0 To ss.Count - 1
       If ss(Index).ObjectName = "AcDbText" Then
           Set AcadTxt = ss(Index)
           TotalValue = TotalValue + AcadTxt.TextString
       End If
   Next Index

   ThisDrawing.SelectionSets.item("TextObj").Delete
   Set ss = Nothing
   Set AcadTxt = Nothing
   MsgBox "Total = " & TotalValue
End Sub

  • Vote tăng 1

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

Thực ra mình ko nắm rõ dữ liệu vào của bạn ketxu nên bài toán đơn giản mà phải tranh luận nhìu như thế

Khi lấy tọa độ của text ta được tọa độ điểm bên trái góc dưới khung chứa text. Và mình đã lấy tọa độ này để đi xử lý. Khi bạn canh giữa, canh phải hay có khoảng trắng trước khi đánh text thì sẽ dẫn đến kết quả sai-->bít được nguyên nhân, nắm rõ dữ liệu vào thế là bạn có thể giải quyết được bài toán này dễ dàng bằng cách tạo thêm một hàm để xử lý lấy được tọa độ chính xác của text.

-Hơn nữa code chưa xét đến mức độ lệch theo phương x

Code của mình đã xét đến mức độ lệch theo phương X rồi đó chứ. Chỉ có điều mình cho độ lệch nhỏ quá(=1/5 chiều cao text) nên bạn tưởng là chưa. Có thể test lại níu nghi ngờ

  • Vote tăng 1

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
PS1:Thế mà ngay ở đầu topic bạn đã nói cộng các text có chung tọa độ X, còn nhấn mạnh là chính xác nữa chứ.

PS2:Cái này thì ko đúng với bạn ketxu rồi. Xem lại link này đi nhé!hê hê

http://www.cadviet.com/forum/index.php?showtopic=19199

ketxu:Thực chất việc xóa pass của DVB file rất đơn giản,nhưng mình nghĩ không nên show thì tốt hơn

 

 

Thực ra mình ko nắm rõ dữ liệu vào của bạn ketxu nên bài toán đơn giản mà phải tranh luận nhìu như thế

Khi lấy tọa độ của text ta được tọa độ điểm bên trái góc dưới khung chứa text. Và mình đã lấy tọa độ này để đi xử lý. Khi bạn canh giữa, canh phải hay có khoảng trắng trước khi đánh text thì sẽ dẫn đến kết quả sai-->bít được nguyên nhân, nắm rõ dữ liệu vào thế là bạn có thể giải quyết được bài toán này dễ dàng bằng cách tạo thêm một hàm để xử lý lấy được tọa độ chính xác của text.

 

Code của mình đã xét đến mức độ lệch theo phương X rồi đó chứ. Chỉ có điều mình cho độ lệch nhỏ quá(=1/5 chiều cao text) nên bạn tưởng là chưa. Có thể test lại níu nghi ngờ

Tks bác.ĐÚng là lỗi do e.Có lẽ là do cái tật hấp tấp lại wen đòi voi đc 2 bà trưng rùi, nên yêu cầu có phần rối rắm ^^.Thực ra thì lúc đầu e cũng nghĩ tất cả text căn trái hết rồi,n sau này mới nghĩ ra phát sinh thế .hề hề

p/S : vì là e XIN,và mỗi lần ketxu e xin thì đều nghĩ ngoài e ra thì cũng có người khác cần,nên phải hỏi xin phép tác giả mỗi khi muốn public để hỏi han,thắc mắc,chỉnh sửa, nên k làm ẩu đc :undecided:

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  

×