Ứng dụng ngôn ngữ VBA trong Excel để giải 1 số bài toán trong ĐKT - Tư vấn Kết cấu, BTCT, thi công xây dựng
Ứng dụng ngôn ngữ VBA trong Excel để giải 1 số bài toán trong ĐKT
Chào các bạn!
Hiện nay, Excel được sử dụng rất rộng rãi trong nhiều lĩnh vực. Riêng trong ĐKT, các biểu thí nghiệm trong phòng, ngoài trời đều sử dụng Excel, các bảng tính về thí nghiệm trong phòng, tính lún, sức chịu tải của cọc,... đều có thể thực hiện trong Excel. Tuy nhiên, các sản phẩm phần lớn đều mang tính thủ công và phụ thuộc rất nhiều vào trình độ của mỗi người.
VBA là viết tắt của Visual Basic for Application. VBA được ứng dụng trong Word, Excel,AutoCad,... và nó được phát huy rất hiệu quả trong việc tính toán, sử lý số liêu. Theo quan điểm của ngày trước, Excel không xử lý thống kê (20 TCN 74-87) một cách tự động được, nhưng bây giờ thì hoàn toàn có thể. Việc sử dụng các hàm tự tạo (Function), chương trình con (Sub) đã nâng cao hiệu quả sử dụng của Excel.
Tôi xin tặng các bạn hàm tính sức chịu tải quy ước Ro. Để tạo hàm này, các bạn thực hiện các bước như sau:
- Vào menuToolsMacroVisual Basic Editor. Cửa sổ Visual Basic Editor hiện ra.
- Vào menuInsertModule.
- Copy đoạn này vào:
Function Ro(Khoiluongtt, C, Gocmasat) as single
Goc ma sat trong da chuyen sang so thap phan
Tinh he so A
A = 3.14 * 0.25 / (1 / Tan(Gocmasat * 3.14 / 180) + Gocmasat * 3.14 / 180 - 1.57)
Tinh he so B
B = 1 + A / 0.25
Tinh he so C
D = A / 0.25 / Tan(Gocmasat * 3.14 / 180)
Xac dinh suc chiu tai quy uoc cua dat (kG/cm2)
Ro = (A + B) * Khoiluongtt / 10 + C * D
End Function
- Sau đó đóng cửa sổ Visual Basic Editor lai.
- Vào Menu/Insert/Function. Chọn tên hàm Ro trong User defined.
Đây là một hàm đơn giản, còn rất nhiều các hàm khác có thể lập được trong Excel như:
- Môđun tổng biến dạng Ẹo
- Hàm nội suy 1 chiều, 2 chiều (rất phổ biến trong lĩnh vực cơ học dất- nền móng). Nếu chỉ dùng Vlookup, Hlookup thì không đạt được ý muốn.
- Hàm về thống kê: Độ lệch bình phương trung bình S (như STDEV trong Excel), chuyển vị của độ lệch bình phương trung bình Scm (như STDEVP trong Excel),...
Bạn nào quan tâm thì liên hệ theo địa chỉ Tôiail: tuhuongdcct366*
Có 29 câu trả lời!!
Có thể bạn chưa biết: Khoảng cách giữa các cột nhà thường từ 4-4.5m. Nếu mặt tiền nhà rộng trên 5m thì khi thiết kế nhà nên chia thêm cột để tránh phải làm dầm, cột to thêm tốn thêm tiền.
|
|
|
Cảm ơn bạn nhiều, VBA tôi thấy cũng rộng lắm. Hy vọng bạn sẽ post thêm nhiều nữa nhé,
Thân
Thái
|
ao anh xa |
|
|
Tôi xin giới thiệu với các bạn phương pháp lập Chương trình xử lý thống kê kết quả thí nghiệm trong phòng, viết bằng ngôn ngữ VBA trong Excel.
Cấu trúc file bao gồm:
- Lập cơ sở dữ liệu để tra các hệ số t_anpha, v.
- Sử dụng các hàm sẵn có trong Excel và xây dựng các hàm nội suy để tra các hệ số trên shop giày nam chính hãng.
- Xây dựng cửa sổ đầu vào và tiến hành loại trừ sai số thô.
- Xây dựng sheet kết qủa. Ví dụ đối với chỉ tiêu sức kháng cắt C, phi (khó nhất) thì ta xây dựng các hàm Delta, Ctc, tang_phi_tc,... Từ đó dễ dàng xác định các giá trị theo trạng thái giới hạn I, II.
|
Alvarogime |
|
|
Tôi có tải giao diện của Xử lý kết quả sức chống cắt của đất theo 20 TCN 74-87.
Mời các bạn xem file ảnh kèm theo.
rose studio
|
Amen1402 |
|
|
Đây là một số hình ảnh về Chương trình chỉnh lý thống kê:
>
Bạn nào quan tâm thì liên hệ với tôi theo Tôiail.
đạo cụ chụp ảnh cưới
|
tieu sao |
|
|
VBA thì rất hay rồi. Nhưng có một nhược điểm lớn thế này, mong các bạn cùng trao đồi và khắc phục. Chúng ta dùng VBA cho Excel, khi đem file có Macro đi sang các máy khác. các chương trình diệt virus sẽ xơi ngay cái macro tôi mất bao nhiêu công viết. Chưa kể những chương trình diệt virus rất mạnh không cho ta copy file có macro vào máy nữa.
Việc tắt các chương trình diệt virus là có thể làm được nhưng rất mất thời gian và bất tiện. Đó chính là tính hạn chế lớn nhất của VBA ( theo tôi ) làm cho nó khó sử dụng đại trà, tính ổn định không cao , nhất là cần trình bày ở một phiên hội thảo ở một máy tính lạ.
|
dudung |
|
|
Không biết xu hướng thiết kế nhà Hải Phòng hiện nay thế nào nhỉ? Cuối năm nay mình xây nhà. Nên chọn phong cách thiết kế hiện đại hay tân cổ điển. |
Luckyman
|
|
|
Nếu được bạn up lên diễn đàn cho anh tôi dùng chung với.
Cám ơn bạn nhiều
|
terrydoa |
|
|
Hình như bạn PED nhầm. Chỉ một số chương trình quét virus ở trong nước nhầm lẫn giữa VBA và virus macro. Khi quét cần lưu ý và tạo file zip để lưu khi cần thiết. Tôi đã từng là nạn nhân của Bkav, bao nhiêu chương trình mất toi.
đạo cụ chụp ảnh cho bé
|
controlledpills |
|
|
Chương trình chỉnh lý thống kê sức chống cắt của đất (C, phi) theo tô tương đối phức tạp nên chúng tôi đang thử nghiệm.
Khi nào chỉnh lý chuẩn xác thì sẽ chia sẻ sau !!!
|
test1212 |
|
|
Tôi có sưu tầm được một số tài liệu hướng dẫn học VB, VBA (toàn tiếng Anh thôi), tôi sẽ lần lượt giới thiệu cho các bạn nào quan tâm.
giày timberland
|
tandc128 |
|
|
|
Tôi giới thiệu tiếp một số tài liêụ khác nữa. Còn 1 số tài liệu rất hay, tôi giới thiệu dần dần. Mỗi cái nó có một cái hay.
giày zara
|
profilmuoibon14 |
|
|
Đúng vậy, vì Bkav không phân biệt đuợc giữa virus và macro, nếu dùng Bkav thì phải lưu file macro sang chỗ khác để khỏi bị tiêu diệt, không có cái để dùng .>
|
thanhtinh |
|
|
Tôi cũng kô hiểu là 2 ông Bkav và D2 làm sao kô biệt được marco VBA và macro virus, trong khi đó các phần mềm diệt virus nước ngoài thì chẳng sao!
Nhân tiện tôi xin giới thiệu thêm một số code (sưu tầm) và Hướng dẫn sử dụng VBA trong Excel 2003.
Chú ý là các bạn nên lựa chọn cái cần thôi, chứ đọc mãi thì .... ốm!!!!
Bạn nào quan tâm nữa thì vào trang http://edu.net.vn/Default.aspx?tabindex=1&tabid=6&mid=6, tha hồ tải (cả tiếng Anh, tiếng Việt).
giày vans
|
suanhadthouse |
|
|
cai khong tien cua VBA trong Exel theo toi la khong chay đươctrên các phiên bản của offic
chu việc nhầm lẫn giữa macro va virut cua Bac Quang khong dang ngai lam nếu bạn nén file đó lại
mình nghĩ VBA là công cụ tốt để tăng năng suất làm việc cho kỹ sư
đặc biệt khi các bạn phải lập các bảng tính
không biết tôi nói có đung không mong các bạn góp ý
thân!
|
thanhtinh |
|
|
|
Bạn Phan Huong chắc giỏi VBA, có vấn đề gì sẽ nhờ bạn sau
|
Donaldsor |
|
|
Em có xem qua topic của anh "PhanTuHuong" rất là hay,phải học hỏi anh nhiều về VBA.
Qua bài topic, hình như anh đang là Giảng viên dạy ở trường ĐHKT TPHCM phải ko ah? không biết phải thầy Tú dạy Địa chất công trình ko?Em đã học môn này do thầy dạy.
Rất vui được biết thầy trên diễn đàn! _Kính chào.
|
AlbertgeK |
|
|
cam on bac huong. Cai vba nay hay wa
|
Edwandhext |
|
|
Xin lỗi bạn tôi không hiểu có nhầm không
Trên là hệ số C dưới tính là hệ số D là thế nào
để sang Ro thì công thức có đúng không?
Cám ơn
|
michaelyork |
|
|
Chính xác là D, nhầm 1 chút không ảnh hưởng đến công thức vì C là lực dính, là giá trị nhập
Tinh he so D
D = A / 0.25 / Tan(Gocmasat * 3.14 / 180)
|
terrydoa |
|
|
Chào các đồng nghiệp, tại sao code này không chạy ra được sai do đâu. Tôi đang học mong được trợ giúp
Sub Ten_dat()
Dim Hsr, Chisodeo, Doset As Single
Hsr = Inputbox ("Vao gia tri he so rong")
Chisodeo = Inputbox("Vao gia tri chi so deo")
Doset = Inputbox("Vao gia tri do set")
If Hsr >1.5 And Chisodeo >=17 And Doset >1 Then
Msgbox "Day la dat BUN SET"
ElseIf Hsr >1.0 And Chisodeo >=7 And Doset >1 Then
Msgbox "Day la dat BUN SET PHA"
ElseIf Hsr >0.9 And Chisodeo >=1 And Doset >1 Then
Msgbox "Day la dat BUN CAT PHA"
Else
MsgBox"Chua ro ten dat!!!"
End If
End Sub
Chỉ ra "Chua ro tên đất!!!" Tại sao?
Cám ơn
|
Haroldser |
|
|
Chào các đồng nghiệp, tại sao code này không chạy ra được sai do đâu. Tôi đang học mong được trợ giúp
Sub Ten_dat()
Dim Hsr, Chisodeo, Doset As Single
Hsr = Inputbox ("Vao gia tri he so rong")
Chisodeo = Inputbox("Vao gia tri chi so deo")
Doset = Inputbox("Vao gia tri do set")
If Hsr >1.5 And Chisodeo >=17 And Doset >1 Then
Msgbox "Day la dat BUN SET"
ElseIf Hsr >1.0 And Chisodeo >=7 And Doset >1 Then
Msgbox "Day la dat BUN SET PHA"
ElseIf Hsr >0.9 And Chisodeo >=1 And Doset >1 Then
Msgbox "Day la dat BUN CAT PHA"
Else
MsgBox"Chua ro ten dat!!!"
End If
End Sub
Chỉ ra "Chua ro tên đất!!!". Tại sao? Sách thày Phan Tự Hướng
Cám ơn
|
cameralenguyen |
|
|
|
opera |
|
|
Xin lỗi tôi viết sai nay sửa lại. Mong được sự thông cảm
|
MattieHek |
|
|
bạn chạy nó báo lỗi hay báo chưa rõ tên đất ?????
nếu như trên thì chỉ cần 1 trong các điều kiện như Hsr <=0.9, chisodeo<1 hay Doset <1 thì sẽ ra thông báo chưa rõ tên đất là phải rồi
đoạn code này chỉ phân chia BÙN loại gì thôi. muốn gọi tên đất thì phải viết thêm hoặc lập đoạn code khác.
nếu là lỗi code thì tôi chịu, tôi ko biết VBA
|
nongdan |
|
|
Không biết không chạy được ra là thế nào, tôi vừa test code thấy bình thường không vấn đề gì.
Bài này nên chuyển thành Function thì hay hơn
|
lightzar |
|
|
Đoạn code này tôi viết lâu rồi, hình như trong cuốn VBA Excel ứng dụng trong ĐCCT.
|
con voi con |
|
|
Thưa thầy điều thầy nói là đúng vì tôi đang muốn học viết code trong excell
Xin lỗi tôi viết bị sai nên không chạy đúng bây giờ tôi tìm thấy chỗ sai rồi.
Cám ơn anh tôi góp ý
|
BrandonMr |
|