Dim A As Single
Dim B As Single
Dim c As Single
Dim d As Single
Dim R1 As Single
Dim qc As Single
Dim Cm As Single
Dim Rc As Single
Dim L As Single
Dim m1 As Single
Dim m2 As Single
Dim m3 As Single
Dim m4 As Single
Dim m5 As Single
Dim s As Single
Dim Lc As Single
Dim m7 As Single
Dim m8 As Single
Dim m9 As Single
Dim m10 As Single
Private Sub Combo4_Click()
If Combo4.Text = "有" Then
Combo2.Visible = True
Label2(2).Visible = True
Combo3.Visible = False
Label2(3).Visible = False
ElseIf Combo4.Text = "无" Then
Combo3.Visible = True
Label2(3).Visible = True
Combo2.Visible = False
Label2(2).Visible = False
Else
Combo3.Visible = False
Label2(3).Visible = False
Combo2.Visible = False
Label2(2).Visible = False
End If
End Sub
Private Sub Command1_Click()
Text7.Text = 0.00001
Text8.Text = 0.00001
Text1.Text = 0.00001
Text6.Text = 0.00001
End Sub
Private Sub Command2_Click()
On Error Resume Next
If Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 530
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 350
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 350
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 260
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 700
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 470
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 470
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 350
B = 0.021
c = 1.85
d = 0.84
ElseIf Combo1.Text = "小于2" Then
A = 400
B = 0.01
c = 1.85
d = 0.78
Else
MsgBox "你的输入或选择有误,请检查你的输入或选择!"
A = 400
B = 0.01
c = 1.85
d = 0.78
End If
Cm = Text1.Text
qc = Text7.Text
s = Text8.Text
L = 0
On Error Resume Next
m1 = qc / Cm
'Print "m1=" & m1
m2 = 1 / A
Rc = (s / 3.14) ^ 0.5
Do While 1 = 1
On Error Resume Next
L = L + 0.01
m7 = (L ^ c) B
m8 = 0.25 (Rc ^ 2)
m9 = (m7 + m8)
m10 = m2 Sqr(m9)
m3 = m10 (L ^ d)
'Print "m3=" & m3
m4 = L
m5 = m3 - m1
If Abs(m5 / m1) < 0.001 Then
GoTo abc
End If
Loop
abc: Lc = m4
If Lc > 1000 And Lc <= 2000 Then
If Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 530
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 350
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 350
B = 0.021
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 260
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 700
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 470
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 470
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 350
B = 0.036
c = 1.77
d = 0.84
ElseIf Combo1.Text = "小于2" Then
A = 400
B = 0.015
c = 1.79
d = 0.78
Else
MsgBox "你的输入或选择有误,请检查你的输入或选择!"
A = 400
B = 0.015
c = 1.79
d = 0.78
End If
'如果在1000-2000之间重新核算防护距离
Cm = Text1.Text
qc = Text7.Text
s = Text8.Text
L = 1000
m1 = qc / Cm
'Print "m1=" & m1
m2 = 1 / A
Rc = (s / 3.14) ^ 0.5
Do While 1 = 1
On Error Resume Next
L = L + 0.01
m7 = B (L ^ c)
m8 = 0.25 (Rc ^ 2)
m9 = (m7 + m8)
m10 = m2 Sqr(m9)
m3 = m10 (L ^ d)
'Print "m3=" & m3
m4 = L
m5 = m3 - m1
If Abs(m5 / m1) < 0.001 Then
GoTo def
End If
Loop
ElseIf Lc > 2000 Then
If Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 290
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 190
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 190
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 140
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "大于允许1/3" Then
A = 380
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "有" And Combo2.Text = "小于允许1/3" Then
A = 250
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "急性指标" Then
A = 250
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "大于2小于4" And Combo4.Text = "无" And Combo3.Text = "慢性指标" Then
A = 190
B = 0.036
c = 1.77
d = 0.76
ElseIf Combo1.Text = "小于2" Then
A = 80
B = 0.015
c = 1.79
d = 0.57
Else
MsgBox "你的输入或选择有误,请检查你的输入或选择!"
A = 80
B = 0.015
c = 1.79
d = 0.57
End If
'如果在大于2000重新核算防护距离
Cm = Text1.Text
qc = Text7.Text
s = Text8.Text
L = 2000
m1 = qc / Cm
'Print "m1=" & m1
m2 = 1 / A
Rc = (s / 3.14) ^ 0.5
Do While 1 = 1
L = L + 0.01
m7 = (L ^ c) B
m8 = 0.25 (Rc ^ 2)
m9 = (m7 + m8)
m10 = m2 Sqr(m9)
m3 = m10 (L ^ d)
'Print "m3=" & m3
m4 = L
m5 = m3 - m1
If Abs(m5 / m1) < 0.001 Then
GoTo def
End If
Loop
Else
End If
def:
Text6.Text = Lc
End Sub
Private Sub Label5_Click()
End Sub
Private Sub Command3_Click()
MsgBox " 1、防护距离在1000米以上,程序会自动试算,后重新选取ABCD值,后再计算! 2、经与EIA2.6核算,防护距离1000米内,核算结果误差在0.05米内;防护距离在1000米以上,核算结果误差在10米以内;产生误差原因是在计算机叠加过程中产生!不是参数选取有误!"
End Sub
Private Sub Form_Load()
Combo1.AddItem "大于4"
Combo1.AddItem "大于2小于4"
Combo1.AddItem "小于2"
Combo2.AddItem "大于允许1/3"
Combo2.AddItem "小于允许1/3"
Combo3.AddItem "急性指标"
Combo3.AddItem "慢性指标"
Combo4.AddItem "有"
Combo4.AddItem "无"
Combo2.Visible = True
Label2(2).Visible = True
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Key = Chr(KeyAscii)
Select Case Key
Case "0" To "9"
N = Val(Left(Text1.Text, Text1.SelStart) + Key + Mid(Text1.Text, Text1.SelStart + Text1.SelLength + 1))
Case "."
If InStr(Text1.Text, ".") Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查输入")
End If
Case Else
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End Select
If Key = "-" And (InStr(Text1.Text, "-") Or Text1.SelStart <> 0) Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End If
End Sub
Private Sub Text7_KeyPress(KeyAscii As Integer)
Key = Chr(KeyAscii)
Select Case Key
Case "0" To "9"
N = Val(Left(Text7.Text, Text7.SelStart) + Key + Mid(Text7.Text, Text7.SelStart + Text7.SelLength + 1))
Case "."
If InStr(Text7.Text, ".") Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查输入")
End If
Case Else
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End Select
If Key = "-" And (InStr(Text7.Text, "-") Or Text7.SelStart <> 0) Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End If
End Sub
Private Sub Text8_KeyPress(KeyAscii As Integer)
Key = Chr(KeyAscii)
Select Case Key
Case "0" To "9"
N = Val(Left(Text8.Text, Text8.SelStart) + Key + Mid(Text8.Text, Text8.SelStart + Text8.SelLength + 1))
Case "."
If InStr(Text8.Text, ".") Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查输入")
End If
Case Else
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End Select
If Key = "-" And (InStr(Text8.Text, "-") Or Text8.SelStart <> 0) Then
KeyAscii = 0
MsgBox ("数据输入错误,请检查是否在数值输入状态")
End If
End Sub
卫生防护距离计算工具
相关文章
还没有评论
发表评论