huanutc90
Thành viên mới

- Tham gia
- 12/11/11
- Bài viết
- 6
- Được thích
- 0
- Nghề nghiệp
- Kỹ sư
Mình có tự viết một số hàm chuyên ngành mình thường dùng (hàm tính võng, hàm tính mô men lực cắt dầm giản đơn..)
Mình gặp khó khăn khó khăn khi chia sẻ cho người khác dùng. Mình thấy các hàm của excle có các chỉ dẫn (như hàm max mình chụp ảnh ở dưới).
Các pro ai biết các tạo cái chỉ dẫn đó cho một hàm tự tạo chỉ giúp mình.
Cảm ơn nhiều.

Ví dụ 1 code của mình:
Function MHL_93(l, x, im As Double) As Double
' Tinh toan noi luc do xe 3 tai 3 truc va xe tai 2 tuc
' Noi luc da tinh den tai trong lan 9.3kN/m
' l(m) -chieu dai nhip
' x(m) vi tri mat cat
' im he so xung kich
Dim i, j As Double
Dim p(1 To 5) As Double
Dim a(1 To 5) As Double
Dim M(1 To 5) As Double
Dim truck, tanden As Double
Dim lan As Double
truck = 0: tanden = 0
lan = 9.34 * x * (l - x) / 2
p(1) = 35.5858: p(2) = 142.343: p(3) = 142.343: p(4) = p(5) = 111.206
For i = 0 To l + 10 Step 0.01
a(1) = i: a(2) = a(1) - 4.2672: a(3) = a(1) - 2 * 4.2672
a(4) = i: a(5) = a(4) - 1.2192
For j = 1 To 5 Step 1
If a(j) <= 0 Or a(j) >= l Then
M(j) = 0
ElseIf x <= a(j) Then
M(j) = p(j) * (l - a(j)) * x / l
Else
M(j) = p(j) * a(j) * (l - x) / l
End If
Next
If truck < (M(1) + M(2) + M(3)) Then
truck = (M(1) + M(2) + M(3))
End If
If tanden < (M(4) + M(5)) Then
tanden = (M(4) + M(5))
End If
Next
If truck > tanden Then
MHL_93 = truck * im + lan
Else
MHL_93 = tanden * im + lan
End If
End Function
Mình gặp khó khăn khó khăn khi chia sẻ cho người khác dùng. Mình thấy các hàm của excle có các chỉ dẫn (như hàm max mình chụp ảnh ở dưới).
Các pro ai biết các tạo cái chỉ dẫn đó cho một hàm tự tạo chỉ giúp mình.
Cảm ơn nhiều.

Ví dụ 1 code của mình:
Function MHL_93(l, x, im As Double) As Double
' Tinh toan noi luc do xe 3 tai 3 truc va xe tai 2 tuc
' Noi luc da tinh den tai trong lan 9.3kN/m
' l(m) -chieu dai nhip
' x(m) vi tri mat cat
' im he so xung kich
Dim i, j As Double
Dim p(1 To 5) As Double
Dim a(1 To 5) As Double
Dim M(1 To 5) As Double
Dim truck, tanden As Double
Dim lan As Double
truck = 0: tanden = 0
lan = 9.34 * x * (l - x) / 2
p(1) = 35.5858: p(2) = 142.343: p(3) = 142.343: p(4) = p(5) = 111.206
For i = 0 To l + 10 Step 0.01
a(1) = i: a(2) = a(1) - 4.2672: a(3) = a(1) - 2 * 4.2672
a(4) = i: a(5) = a(4) - 1.2192
For j = 1 To 5 Step 1
If a(j) <= 0 Or a(j) >= l Then
M(j) = 0
ElseIf x <= a(j) Then
M(j) = p(j) * (l - a(j)) * x / l
Else
M(j) = p(j) * a(j) * (l - x) / l
End If
Next
If truck < (M(1) + M(2) + M(3)) Then
truck = (M(1) + M(2) + M(3))
End If
If tanden < (M(4) + M(5)) Then
tanden = (M(4) + M(5))
End If
Next
If truck > tanden Then
MHL_93 = truck * im + lan
Else
MHL_93 = tanden * im + lan
End If
End Function