Công thức phân tích diễn giải khối lượng ra kết quả ( góp ý phát triễn code)

Liên hệ QC

vpn25

Thành viên mới
Tham gia
25/10/09
Bài viết
6
Được thích
9
mình thấy nhiều bạn hỏi cái này dành cho xây dựng nên mình mò viết nên code hơi tùm lum, a chị nào giỏi giúp hoàn thiện giùm.
code mình phân tích chuỗi vd bê tông trục 1 :3*5*4 thành công thức toán học, chấp nhận diễn giải dấu x
-- Anh chị nào giúp giùm e mấy phần này với
+ code tự động sum khối lượng riêng và hiển thị ở khối lượng chung
+ nếu người dùng gõ STT bắt đầu cho tên công tác thì kết quả tự hiển thị (auto) chứ không copy và paste thủ công giống như mấy phần mềm dự toán.Và phần kết quả ở khối lượng chung tự động hiểu và sum khối lượng riêng lại đối với mỗi mình công tác đó thôi ( công tác luôn bắt đầu bởi 1 STT) em có đính kèm file elxce.Ai biết code hỗ trợ để giúp mọi người lẫn mình có 1 file tiên lượng dùng bằng elxce cho tiện.cảm ơn

Function tinhso(chuoi As String) As Double
Dim vitri As Integer
Dim Temp, Temp1
vitri = InStr(chuoi, ":")
If vitri > 0 Then
chuoi = Mid(chuoi, vitri + 1)
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Temp1 = Replace(chuoi, "[", "(")
Temp1 = Replace(Temp1, "]", ")")
Temp1 = Replace(Temp1, "{", "(")
Temp1 = Replace(Temp1, "}", ")")
Temp1 = Replace(Temp1, "x", "*")
'//Temp1 = Replace(Temp1, ":", "/")
Temp.Pattern = "[^0-9,+,.,*,/,:,(,),-]"
chuoi = Temp.Replace(Temp1, "")
tinhso = Evaluate(chuoi)
Else: MsgBox ("ban quen nhap dau hai cham")
End If

End Function

 

File đính kèm

  • vdfdfd.rar
    32.4 KB · Đọc: 548
Lần chỉnh sửa cuối:
mình thấy nhiều bạn hỏi cái này dành cho xây dựng nên mình mò viết nên code hơi tùm lum, a chị nào giỏi giúp hoàn thiện giùm.
code mình phân tích chuỗi vd bê tông trục 1 :3*5*4 thành công thức toán học, chấp nhận diễn giải dấu x
-- Anh chị nào giúp giùm e mấy phần này với
+ code tự động sum khối lượng riêng và hiển thị ở khối lượng chung
+ nếu người dùng gõ STT bắt đầu cho tên công tác thì kết quả tự hiển thị (auto) chứ không copy và paste thủ công giống như mấy phần mềm dự toán.Và phần kết quả ở khối lượng chung tự động hiểu và sum khối lượng riêng lại đối với mỗi mình công tác đó thôi ( công tác luôn bắt đầu bởi 1 STT) em có đính kèm file elxce.Ai biết code hỗ trợ để giúp mọi người lẫn mình có 1 file tiên lượng dùng bằng elxce cho tiện.cảm ơn
Diễn giải để tách các kích thước là điều gần như không thể (vì làm như thế là ngược). Mình có file này, bạn tham khảo nhé! Phần số thứ tự luôn luôn phải có thì công thức sum khối lượng cho hạng mục mới đúng.
 
Upvote 0
Bạn k hiểu ý mình hỏi rồi,code mình viết tách ra dc đó thôi, ban da load
File mình chưa?bạn đọc mấy cái ý mình hỏi trả lời
giúp mình với kèm file đính kèm.thanks
 
Upvote 0
Bạn k hiểu ý mình hỏi rồi,code mình viết tách ra dc đó thôi, ban da load
File mình chưa?bạn đọc mấy cái ý mình hỏi trả lời
giúp mình với kèm file đính kèm.thanks
Bạn xem trong file của mình đi. Thủ tục worksheet_change sẽ giúp hàm tự động dò tìm mảng cần sum() rồi gán công thức. Đoạn code mình viết nó sum khối lượng như bạn nói đó. Xem kỹ đoạn For Next trong code worksheet_change. Đó là lúc nó gán công thức hàm DiengiaiTL(). Thay vì hàm này, bạn dùng hàm Sum() vì ô kết quả bạn đã tính sẵn ra rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
tại mình cũng cần bảng excel như vậy để làm cho tiện, nhất là đối với mấy a kỹ sư già chưa quen công nghệ lắm.tại search trên google không ai share hoàn chỉnh.Nên mình tự mò học vba mới mấy ngày nay thôi.Code bạn đã giải quyết được vấn đề đó, nhưng hình như code bạn dùng vòng lặp phải không, có thể giải quyết vấn đề mà ko lặp được ko, mình thấy lúc mở file lên nó load hơi nặng cũng như lập dữ liệu máy nó hơi đứng, nếu khối lượng công việc nhiều ko biết máy có bị đứng ko nữa.cảm ơn vì bài viết
 
Upvote 0
tại mình cũng cần bảng excel như vậy để làm cho tiện, nhất là đối với mấy a kỹ sư già chưa quen công nghệ lắm.tại search trên google không ai share hoàn chỉnh.Nên mình tự mò học vba mới mấy ngày nay thôi.Code bạn đã giải quyết được vấn đề đó, nhưng hình như code bạn dùng vòng lặp phải không, có thể giải quyết vấn đề mà ko lặp được ko, mình thấy lúc mở file lên nó load hơi nặng cũng như lập dữ liệu máy nó hơi đứng, nếu khối lượng công việc nhiều ko biết máy có bị đứng ko nữa.cảm ơn vì bài viết
Mình dùng bình thường mà. Chạy rất nhanh. Sở dĩ phải dùng vòng lặp vì như thế mới xác định được vị trí của cells cần đặt hàm sum(), từ đó thay đổi địa chỉ tham chiếu tới dòng mới nhập công thức. Có thể không dùng vòng lặp, nhưng cần 1 sheet (có thể ẩn đi) hoặc 1 cells nào đó trên sheet hiện hành để ghi lại địa chỉ của cells gần nhất chứa hàm sum(). Sở dĩ phải làm như thế vì sau khi code kết thúc thì khi chạy mới, giá trị các biến quay về mặc định.
 
Upvote 0
bạn có thể giúp thêm lần này nữa không.mình không muốn kết quả xuất hiện ngay trong ô diễn giải mà xuất hiện ở ô KL riêng (trong file excel của mình) và ô khối lượng tổng như bạn làm thì để y như vậy.Làm vậy để ai đó kiểm tra người ta có thể kiểm tra bằng cách bôi đen hết xem kq ở dưới taskbar.có thể nt mình dc mail bạn ko?
 
Upvote 0
bạn có thể giúp thêm lần này nữa không.mình không muốn kết quả xuất hiện ngay trong ô diễn giải mà xuất hiện ở ô KL riêng (trong file excel của mình) và ô khối lượng tổng như bạn làm thì để y như vậy.Làm vậy để ai đó kiểm tra người ta có thể kiểm tra bằng cách bôi đen hết xem kq ở dưới taskbar.có thể nt mình dc mail bạn ko?
Code của mình có 3 phần rõ rệt:
1. Tách dữ liệu và tính toán kết quả.
2. Gán kết quả vào chính đoạn text diễn giải.
3. Cập nhật tính toán vào hàm DiengiaiTL()
Như vậy nếu bạn muốn kết quả chỉ xuất hiện ở ô KL riêng thì làm như sau:
1. Tách dữ liệu và tính toán kết quả
2. Gán giá trị vào ô khối lượng riêng.
3. Bỏ qua đoạn cập nhật hàm DiengiaiTL()
Việc tách và tính toán kết quả có thể làm theo 2 hướng:
1. Tính toán trong code rồi gán giá trị vào ô KL riêng.
2. Gán hàm tự tạo vào ô khối lượng riêng với tham chiếu là phần diễn giải.
Mail của mình: vu_tuan_manh_linh@yahoo.com
 
Upvote 0
Bạn ơi, mã code đó minh đưa vào đâu để có thể tính toán được như vậy.
 
Upvote 0
cách lập hàm đó thế nào hả bạn. Mình có phần mềm dự toán nhưng số kết quả thi bị nhảy 4 số luôn, không phải là 3 số.
WebRep


currentVote


noRating
noWeight
 
Upvote 0
Tại sao 1-2 lại không ra ket qua vậy bạn

Tại sao 1-3 lại khong ra ket qua vay
 
Upvote 0
Bạn có thể viết cái code tách công thức từ khối lượng được k.

Ví dụ: 1 cột có kết quả 2*4 bằng 8, chỉ hiển thị số 8

cột kế bên sẽ hiển thị 2*4=8

Kiểu diễn dải khối lượng trong BBNT ấy, không biết có được k nhỉ?
 
Upvote 0
Kiểu diễn dải khối lượng trong BBNT ấy, không biết có được k nhỉ?
Trong Biên bản Nghiệm thu Công việc có cả Diễn giải + Khối lượng chi tiết từng đầu việc ah bạn?
Theo hướng dẫn của Thông tư, Nghị định nào vậy bạn?
 
Upvote 0
Bạn có thể viết cái code tách công thức từ khối lượng được k.

Ví dụ: 1 cột có kết quả 2*4 bằng 8, chỉ hiển thị số 8

cột kế bên sẽ hiển thị 2*4=8

Kiểu diễn dải khối lượng trong BBNT ấy, không biết có được k nhỉ?
Bạn hỏi anh langtuchungtinh360 ấy. Hôm trước mình thấy anh ấy có làm cái này rồi
 
Upvote 0
Bạn xem trong file của mình đi. Thủ tục worksheet_change sẽ giúp hàm tự động dò tìm mảng cần sum() rồi gán công thức. Đoạn code mình viết nó sum khối lượng như bạn nói đó. Xem kỹ đoạn For Next trong code worksheet_change. Đó là lúc nó gán công thức hàm DiengiaiTL(). Thay vì hàm này, bạn dùng hàm Sum() vì ô kết quả bạn đã tính sẵn ra rồi.
anh cho em xin file đó của anh đi. em cảm ơn anh nhiều
 
Upvote 0
Web KT

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

Back
Top Bottom