Public Function DJ(钢筋直径As Single, 最小搭接直径As Single, 搭接类别As String, 机械接头As String, 锚固As Single)Dim x As Integer, X1 As Integer, X2 As Integer, a As IntegerIf 钢筋直径> 0 Thena = 1Elsea = 0End IfIf 钢筋直径> 最小搭接直径ThenIf 机械接头= "双面焊10D" ThenDJ = 钢筋直径+ 2End IfIf 机械接头= "单面焊5D" ThenDJ = 钢筋直径/ 2 + 2End IfIf 机械接头= "直螺纹" ThenDJ = 0End IfEnd IfIf 钢筋直径<= 最小搭接直径ThenIf 搭接类别= "腰筋G" ThenDJ = 钢筋直径* 1.5: x = 1End IfIf 搭接类别= "搭接100%" Or 搭接类别= "构造柱" ThenDJ = MAX(锚固* 1.6, 30, 0, 0) * a: X1 = 1End IfIf 搭接类别= "Q" Or 搭接类别= "Z" Or 搭接类别= "搭接25%" ThenDJ = MAX(锚固* 1.2, 30, 0, 0) * a: X2 = 1End IfIf x + X1 + X2 = 0 Or 搭接类别= "" ThenDJ = MAX(锚固* 1.4, 30, 0, 0) * aEnd IfEnd IfEnd FunctionPublic Function MG(抗震级别As Single, 钢筋级别As Single, 砼号C As Single, 钢筋直径As Single)Dim j As SingleDim k As SingleDim g As SingleIf 钢筋直径>= 28 ThenIf 钢筋级别>= 2 Thenj = 1.1Elsej = 1End IfElsej = 1End IfIf 抗震级别<= 2 Thenk = 1.15End IfIf 抗震级别= 3 Thenk = 1.05End IfIf 抗震级别= 4 Thenk = 1End IfIf 钢筋级别= 1 And 抗震级别<= 2 Then If 砼号C <= 20 Theng = 45End IfIf 砼号C = 25 Theng = 39End IfIf 砼号C = 30 Theng = 35End IfIf 砼号C = 35 Theng = 32End IfIf 砼号C = 40 Theng = 29End IfIf 砼号C = 45 Theng = 28End IfIf 砼号C = 50 Theng = 26End IfIf 砼号C = 55 Theng = 25End IfIf 砼号C >= 60 Theng = 24End IfEnd IfIf 钢筋级别= 1 And 抗震级别= 3 Then If 砼号C <= 20 ThenEnd IfIf 砼号C = 25 Theng = 36End IfIf 砼号C = 30 Theng = 32End IfIf 砼号C = 35 Theng = 29End IfIf 砼号C = 40 Theng = 26End IfIf 砼号C = 45 Theng = 25End IfIf 砼号C = 50 Theng = 24End IfIf 砼号C = 55 Theng = 23End IfIf 砼号C >= 60 Theng = 22End IfEnd IfIf 钢筋级别= 1 And 抗震级别= 4 Then If 砼号C <= 20 Theng = 39End IfIf 砼号C = 25 Theng = 34End IfIf 砼号C = 30 Theng = 30End IfIf 砼号C = 35 Theng = 28End IfIf 砼号C = 40 Theng = 25End IfIf 砼号C = 45 ThenEnd IfIf 砼号C = 50 Theng = 23End IfIf 砼号C = 55 Theng = 22End IfIf 砼号C >= 60 Theng = 21End IfEnd IfIf 钢筋级别= 2 And 抗震级别<= 2 Then If 砼号C <= 20 Theng = 44End IfIf 砼号C = 25 Theng = 38End IfIf 砼号C = 30 Theng = 33End IfIf 砼号C = 35 Theng = 31End IfIf 砼号C = 40 Theng = 29End IfIf 砼号C = 45 Theng = 26End IfIf 砼号C = 50 Theng = 25End IfIf 砼号C = 55 Theng = 24End IfIf 砼号C >= 60 Theng = 24End IfEnd IfIf 钢筋级别= 2 And 抗震级别= 3 Then If 砼号C <= 20 Theng = 40If 砼号C = 25 Theng = 35End IfIf 砼号C = 30 Theng = 31End IfIf 砼号C = 35 Theng = 28End IfIf 砼号C = 40 Theng = 26End IfIf 砼号C = 45 Theng = 24End IfIf 砼号C = 50 Theng = 23End IfIf 砼号C = 55 Theng = 22End IfIf 砼号C >= 60 Theng = 22End IfEnd IfIf 钢筋级别= 2 And 抗震级别= 4 Then If 砼号C <= 20 Theng = 38End IfIf 砼号C = 25 Theng = 33End IfIf 砼号C = 30 Theng = 29End IfIf 砼号C = 35 Theng = 27End IfIf 砼号C = 40 Theng = 25End IfIf 砼号C = 45 Theng = 23If 砼号C = 50 Theng = 22End IfIf 砼号C = 55 Theng = 21End IfIf 砼号C >= 60 Theng = 21End IfEnd IfIf 钢筋级别= 3 And 抗震级别= 4 Then If 砼号C <= 20 Theng = 40End IfIf 砼号C = 25 Theng = 40End IfIf 砼号C = 30 Theng = 35End IfIf 砼号C = 35 Theng = 32End IfIf 砼号C = 40 Theng = 29End IfIf 砼号C = 45 Theng = 28End IfIf 砼号C = 50 Theng = 27End IfIf 砼号C = 55 Theng = 26End IfIf 砼号C >= 60 Theng = 25End IfEnd IfIf 钢筋级别= 3 And 抗震级别= 3 Then If 砼号C <= 20 Theng = 42End Ifg = 42End IfIf 砼号C = 30 Theng = 37End IfIf 砼号C = 35 Theng = 34End IfIf 砼号C = 40 Theng = 30End IfIf 砼号C = 45 Theng = 29End IfIf 砼号C = 50 Theng = 28End IfIf 砼号C = 55 Theng = 27End IfIf 砼号C >= 60 Theng = 26End IfEnd IfIf 钢筋级别= 3 And 抗震级别<= 2 Then If 砼号C <= 20 Theng = 46End IfIf 砼号C = 25 Theng = 46End IfIf 砼号C = 30 Theng = 40End IfIf 砼号C = 35 Theng = 37End IfIf 砼号C = 40 Theng = 33End IfIf 砼号C = 45 Theng = 32End Ifg = 31End IfIf 砼号C = 55 Theng = 30End IfIf 砼号C >= 60 Theng = 29End IfEnd IfIf 钢筋级别>= 4 And 抗震级别<= 2 Then If 砼号C <= 20 Theng = 55End IfIf 砼号C = 25 Theng = 55End IfIf 砼号C = 30 Theng = 49End IfIf 砼号C = 35 Theng = 45End IfIf 砼号C = 40 Theng = 41End IfIf 砼号C = 45 Theng = 39End IfIf 砼号C = 50 Theng = 37End IfIf 砼号C = 55 Theng = 36End IfIf 砼号C >= 60 Theng = 35End IfEnd IfIf 钢筋级别>= 4 And 抗震级别= 3 Then If 砼号C <= 20 Theng = 50End IfIf 砼号C = 25 ThenEnd IfIf 砼号C = 30 Theng = 45End IfIf 砼号C = 35 Theng = 41End IfIf 砼号C = 40 Theng = 38End IfIf 砼号C = 45 Theng = 36End IfIf 砼号C = 50 Theng = 34End IfIf 砼号C = 55 Theng = 33End IfIf 砼号C >= 60 Theng = 32End IfEnd IfIf 钢筋级别>= 4 And 抗震级别= 4 Then If 砼号C <= 20 Theng = 48End IfIf 砼号C = 25 Theng = 48End IfIf 砼号C = 30 Theng = 43End IfIf 砼号C = 35 Theng = 39End IfIf 砼号C = 40 Theng = 36End IfIf 砼号C = 45 Theng = 34End IfIf 砼号C = 50 ThenEnd IfIf 砼号C = 55 Theng = 31End IfIf 砼号C >= 60 Theng = 30End IfEnd IfIf 钢筋直径= 0 ThenMG = 0ElseMG = g * j * kEnd IfEnd FunctionPublic Function TJ(直径As Variant, 前端拐长度As Variant, 斜长As Variant, 成品身长As Variant, 原材长度As Variant, 原材模数As Integer, N As Integer) As VariantDim x As Integer, C As IntegerIf 前端拐长度> 0 Thenx = Round(直径* 0.2, 0): C = 1Elsex = 0: C = 0End IfIf 成品身长>= 原材长度- C * (前端拐长度+ 斜长) + x ThenIf N = 0 ThenTJ = Round(原材长度/ 原材模数, 0) - C * (前端拐长度+ 斜长) + xEnd IfIf N = 1 ThenTJ = 原材长度- Round(原材长度/ 原材模数, 0) - (前端拐长度+ 斜长) + xEnd IfEnd IfIf 成品身长< 原材长度- C * (前端拐长度+ 斜长) + x ThenTJ = 0End IfEnd FunctionPublic Function RL(构件As String, L As Single, 斜长As Variant, 起头As Single, 原材As Single, 搭接长As Single, 项As String)Dim i As Single: Dim a As SingleIf (起头+ 斜长) > 0 ThenIf L - (起头+ 斜长) <= 原材- 搭接长Theni = 0: RL = L - (起头+ 斜长) + 搭接长End IfIf L - (起头+ 斜长) + 搭接长> 原材ThenIf L - (起头+ 斜长) + 搭接长- Int((L - 起头+ 搭接长) / (原材- 搭接长)) *(原材- 搭接长) <= 搭接长Theni = Int((L - (起头+ 斜长) + 搭接长) / (原材- 搭接长)) - 1: RL = L - 起头+ 搭接长- (Int((L - 起头+ 搭接长) / (原材- 搭接长)) - 1) * (原材- 搭接长)Elsei = Int((L - (起头+ 斜长) + 搭接长) / (原材- 搭接长)): RL = L - (起头+ 斜长) + 搭接长- Int((L - 起头+ 搭接长) / (原材- 搭接长)) * (原材- 搭接长)End IfEnd Ifa = (起头+ 斜长) + i * 原材+ RLEnd IfIf (起头+ 斜长) = 0 ThenIf L <= 原材Theni = 0: RL = LEnd IfIf L > 原材ThenIf L - Int((L) / (原材- 搭接长)) * (原材- 搭接长) <= 搭接长Theni = Int(L / (原材- 搭接长)) - 1: RL = L - (Int(L / (原材- 搭接长)) - 1) * (原材- 搭接长)Elsei = Int(L / (原材- 搭接长)): RL = L - Int(L / (原材- 搭接长)) * (原材- 搭接长)End IfEnd Ifa = i * 原材+ RLEnd IfIf 构件= "箍筋" Or 构件= "拉筋" Thena = 0: RL = 0Elsea = a: RL = RLEnd IfIf 项= "收尾筋" ThenRL = RLEnd IfIf 项= "根数" ThenRL = iEnd IfIf 项= "料长" ThenRL = aEnd IfEnd FunctionPublic Function F(L As Integer, 直径As Integer) As StringDim a As StringIf L = 1 Thena = "φ"End IfIf L = 2 Thena = ""End IfIf L = 3 Thena = ""End IfIf L = 4 Thena = ""End IfIf L = 5 Thena = ""End IfIf 直径> 0 ThenF = a & 直径ElseF = ""End IfEnd FunctionPublic Function TC(构件类别As String) As IntegerDim Y As Integer, y1 As Integer, y2 As Integer, y3 As Integer, y4 As Integer, y5 As Integer If 构件类别= "Q" ThenTC = Sheets("参数表").Range("E14"): Y = 1End IfIf 构件类别= "Z" ThenTC = Sheets("参数表").Range("E12"): y1 = 1End IfIf 构件类别= "B" ThenTC = Sheets("参数表").Range("E10"): y2 = 1End IfIf 构件类别= "L" ThenTC = Sheets("参数表").Range("E8"): y4 = 1End IfIf 构件类别= "JC" ThenTC = Sheets("参数表").Range("E5"): y5 = 1End IfIf 构件类别= "QT" Or 构件类别= " " Or Y + y1 + y2 + y3 + y4 + y5 = 0 ThenTC = Sheets("参数表").Range("E4")End IfEnd FunctionPublic Function KAG(构件类别As String) As IntegerDim Y As Integer, y1 As Integer, y2 As Integer, y3 As Integer, y4 As Integer, y5 As Integer If 构件类别= "Q" ThenKAG = Sheets("参数表").Range("D14"): Y = 1End IfIf 构件类别= "Z" ThenKAG = Sheets("参数表").Range("D12"): y1 = 1End IfIf 构件类别= "B" ThenKAG = Sheets("参数表").Range("D10"): y2 = 1End IfIf 构件类别= "L" ThenKAG = Sheets("参数表").Range("D8"): y4 = 1End IfIf 构件类别= "JC" ThenKAG = Sheets("参数表").Range("D5"): y5 = 1End IfIf 构件类别= "QT" Or 构件类别= " " Or Y + y1 + y2 + y3 + y4 + y5 = 0 ThenKAG = Sheets("参数表").Range("D4")End IfEnd FunctionPublic Function WKL(构件类别As String) As VariantDim a1 As Variant, b1 As Variant, C1 As V ariant, D As VariantIf 构件类别= "" Then构件类别= 0Else构件类别= 构件类别End Ifa1 = InStrRev(构件类别, "WKL", Len(构件类别)): b1 = InStrRev(构件类别, "KZL", Len(构件类别)): C1 = InStrRev(构件类别, "QL", Len(构件类别))If MAX(a1, b1, C1, 0) > 0 ThenIf MAX(a1, b1, C1, 0) = C1 ThenD = MAX(a1, b1, C1, 0) + 1ElseD = MAX(a1, b1, C1, 0) + 2End IfWKL = Mid(构件类别, 1, D)ElseWKL = ""End IfEnd FunctionPublic Function TS(构件As String, WKL As String) As StringIf 构件= "吊筋" Or 构件= "鸭筋" ThenTS = "吊筋"End IfIf 构件= "悬挑一层" Or 构件= "悬挑二层" ThenTS = "悬挑"End IfIf 构件= "插口" ThenTS = "插口"End IfIf 构件<> "吊筋" And 构件<> "鸭筋" And 构件<> "悬挑一层" And 构件<> "悬挑二层" And 构件<> "插口" ThenTS = WKLEnd IfEnd FunctionPublic Function TSG(构件As String, 构件类别As String, WKL As String) As String Dim a As IntegerIf 构件= "吊筋" Or 构件= "鸭筋" Or 构件= "悬挑一层" Or 构件= "悬挑二层" Then If 构件= "吊筋" Or 构件= "鸭筋" ThenTSG = "吊筋": a = 1End IfIf 构件= "悬挑一层" Or 构件= "悬挑二层" ThenTSG = "悬挑": a = 1End IfIf 构件= "插口" ThenTSG = "插口": a = 1End IfElseIf 构件类别= "B" And a <> 1 ThenTSG = Sheets("参数表").Range("C10")ElseTSG = WKLEnd IfEnd IfEnd FunctionPublic Function Wd(构件As String, 构件类别As String, 墙梁宽As Integer) As Integer If 构件= "拉筋" ThenIf 构件类别= "L" Or 构件类别= "Q" ThenWd = 墙梁宽+ 1 - Sheets("参数表").Range("F3")End IfIf 构件类别= "Z" ThenWd = 墙梁宽- Sheets("参数表").Range("F3")End IfEnd IfIf 构件= "箍筋" ThenWd = 墙梁宽- Sheets("参数表").Range("F3")End IfIf 构件<> "拉筋" And 构件<> "箍筋" ThenWd = 0End IfEnd FunctionPublic Function Wh(构件As String, 墙梁高As Integer) As IntegerIf 构件= "箍筋" ThenWh = 墙梁高- Sheets("参数表").Range("G3")ElseWh = 0End IfEnd FunctionPublic Function WL(构件As String, 直径As Integer, 宽As Integer, 高As Integer) As IntegerDim a As IntegerIf 直径>= 8 Thena = 2 * 直径Elsea = 15End IfIf 构件= "箍筋" ThenWL = (宽+ 高) * 2 + aEnd IfIf 构件= "拉筋" ThenWL = 宽+ aEnd IfIf 构件<> "箍筋" And 构件<> "拉筋" ThenWL = 0End IfEnd FunctionPublic Function WUL(构件As String, 级别As Integer, 直径As Integer, 高As Integer) As IntegerDim a As Integer, b As IntegerIf 级别= 1 Thenb = 1Elseb = 0End IfIf 直径>= 8 Thena = 2 * 直径Elsea = 15End IfIf 构件= "插口" ThenWUL = 高* 2 + a * bElseWUL = 0End IfEnd FunctionPublic Function WMX(构件As String, N As Integer) As IntegerDim a As Integer, b As IntegerIf 构件= "腰筋G" Or 构件= "腰筋N" Or 构件= "P" Or 构件= "O" Or 构件= "拉筋" Or 构件= "箍筋" Or 构件= "通长" Or 构件= "架立筋" Thena = 0:b = 0End IfIf 构件= "A" Or 构件= "P1" Or 构件= "长封" Or 构件= "短封" Or 构件= "悬挑一层" Or 构件= "悬挑二层" Or 构件= "插口" Thena = 1:b = 0End IfIf 构件= "B" Or 构件= "P2" Thena = 0:b = 1End IfIf 构件= "" Or 构件= "吊筋" Or 构件= "鸭筋" Or 构件= "马凳" Thena = 1:b = 1End IfIf N = 0 ThenWMX = aElseWMX = bEnd IfEnd FunctionPublic Function WMC(板厚As Integer, 直径As Integer, 宽度As Integer, 梁高As Integer, 悬挑底长As Integer, 标记As String, 锚固As Integer, 构件类别As String, 特殊类别As String) As VariantIf 特殊类别= "板" And 标记= "" ThenIf 直径>= 板厚- 4 ThenWMC = 板厚- 4ElseWMC = 直径End IfEnd IfIf 特殊类别= "外挑板" And 标记= "" ThenWMC = Round((板厚+ 7) / 2)End IfIf 特殊类别= "101-3筏板" And 标记= "" ThenWMC = 1.5 * 直径End IfIf 构件类别= "L" And 标记= "" ThenIf 特殊类别= "吊筋" And 标记= "" ThenWMC = 2 * 直径End IfIf 特殊类别= "悬挑" And 标记= "" ThenWMC = MAX(直径, 悬挑底长, 0, 0)End IfIf 特殊类别= "插口" And 标记= "" ThenWMC = 宽度- Sheets("参数表").Range("F3")End IfIf 特殊类别= "QL" And 特殊类别<> "吊筋" And 特殊类别<> "悬挑" Then WMC = 0.8 * 锚固End IfIf 特殊类别<> "QL" And 特殊类别<> "吊筋" And 特殊类别<> "悬挑" And 特殊类别<> "插口" ThenWMC = 1.5 * 直径End IfEnd IfIf 构件类别= "L" And 标记<> "" ThenIf 特殊类别= "WKL" Or 特殊类别= "" ThenIf Sheets("打印页").Range("J1") = 0 ThenWMC = 梁高- 5End IfIf Sheets("打印页").Range("J1") = 1 ThenWMC = 1.7 * 锚固End IfEnd IfIf 特殊类别= "KZL" ThenWMC = 梁高+ 锚固- 5End IfEnd IfIf 构件类别= "Z" And 标记= "" ThenIf Sheets("参数表").Range("K4") = 1 ThenWMC = Sheets("参数表").Range("I4")ElseWMC = 1.2 * 直径End IfEnd IfIf 构件类别= "Z" And 标记<> "" ThenIf Sheets("参数表").Range("O4") = 1 ThenWMC = Sheets("参数表").Range("M4")End IfIf Sheets("参数表").Range("O4") = 0 ThenWMC = 1.2 * 直径End IfEnd IfIf 构件类别= "Q" And 标记= "" ThenIf Sheets("参数表").Range("K4") = 1 ThenWMC = Sheets("参数表").Range("I4")ElseWMC = 1.2 * 直径End IfEnd IfIf 构件类别= "Q" And 标记<> "" ThenIf Sheets("参数表").Range("O4") = 1 ThenWMC = Sheets("参数表").Range("M4")End IfIf Sheets("参数表").Range("O4") = 0 ThenWMC = 1.2 * 直径End IfEnd IfWMC = Round(WMC, 0)End FunctionPublic Function SOUS(构件类别As String) As VariantDim a1 As Variant, b1 As Variant, C1 As V ariant, D1 As VariantIf 构件类别= "" Then构件类别= 0Else构件类别= 构件类别End Ifa1 = InStrRev(构件类别, "L", Len(构件类别)): b1 = InStrRev(构件类别, "Z", Len(构件类别)): C1 = InStrRev(构件类别, "B", Len(构件类别)): D1 = InStrRev(构件类别, "Q", Len(构件类别)) If MAX(a1, b1, C1, D1) > 0 ThenSOUS = Mid(构件类别, 1, MAX(a1, b1, C1, D1))ElseSOUS = ""End IfEnd FunctionPublic Function SOS(构件类别As String) As VariantDim a1 As Variant, b1 As Variant, C1 As V ariant, D1 As VariantIf 构件类别= "" Then构件类别= 0Else构件类别= 构件类别End Ifa1 = InStrRev(构件类别, "L", Len(构件类别)): b1 = InStrRev(构件类别, "Z", Len(构件类别)): C1 = InStrRev(构件类别, "B", Len(构件类别)): D1 = InStrRev(构件类别, "Q", Len(构件类别)) If MAX(a1, b1, C1, D1) = a1 ThenSOS = "L"End IfIf MAX(a1, b1, C1, D1) = b1 ThenSOS = "Z"End IfIf MAX(a1, b1, C1, D1) = C1 ThenSOS = "B"End IfIf MAX(a1, b1, C1, D1) = D1 ThenSOS = "Q"End IfIf MAX(a1, b1, C1, D1) = 0 ThenSOS = ""End IfEnd FunctionPublic Function MAX(a As Variant, b As Variant, C As V ariant, D As Variant) As VariantDim x As Integer, Y As IntegerIf a >= b Thenx = aElsex = bEnd IfIf C >= D ThenY = CElseY = DEnd IfIf x >= Y ThenMAX = xElseMAX = YEnd IfEnd FunctionPublic Function XTJ(L As Single, 直径As Integer, 悬挑底长As Integer, 构件类别As String, 梁高As Integer, N As Integer) As VariantDim a As Single, h As Integer, λ1 As Integer, L1 As Single, b As Single, P As IntegerIf 构件类别= "悬挑二层" Thenh = 5: λ1 = 1End IfIf 构件类别= "悬挑一层" Or 构件类别= "吊筋" Or 构件类别= "鸭筋" Thenh = 0: λ1 = 1End IfIf 构件类别<> "悬挑二层" And 构件类别<> "悬挑一层" And 构件类别<> "吊筋" And 构件类别<> "鸭筋" Thenh = 0: λ1 = 0End IfP = MAX(悬挑底长, 直径, 0, 0) * λ1If 梁高> 80 Thena = λ1 * Int(2 * (梁高- h - Sheets("参数表").Range("G3")) / Sqr(3)): L1 = λ1 * (L - 悬挑底长- (梁高- h - Sheets("参数表").Range("G3")) / Sqr(3))Elsea = λ1 * Int(Sqr(2) * (梁高- h - Sheets("参数表").Range("G3"))): L1 = λ1 * (L - 悬挑底长- (梁高- h - Sheets("参数表").Range("G3")))End IfIf 构件类别= "吊筋" Or 构件类别= "鸭筋" ThenL1 = 0: P = 2 * 直径ElseL1 = L1: P = PEnd IfIf N = 0 ThenXTJ = PEnd IfIf N = 1 ThenXTJ = MAX(a, 0, 0, 0)End IfIf N = 2 ThenXTJ = L1End IfEnd FunctionPublic Function JMG(L As Integer, 构件类别As String, 锚固As Integer) As VariantIf 构件类别= "P" Or 构件类别= "P1" Or 构件类别= "P2" Or 构件类别= "腰筋G" Or 构件类别= "腰筋N" ThenJMG = LEnd IfIf 构件类别= "架立筋" Or 构件类别= "" Or 构件类别= "吊筋" Or 构件类别= "鸭筋" ThenJMG = LEnd IfIf 构件类别= "A" Or 构件类别= "B" ThenJMG = L + 锚固End IfIf 构件类别= "O" ThenJMG = L + 锚固* 2End IfEnd FunctionPublic Function LJM(构件类别As String, N As Integer) As VariantDim a As Variant, b As Variant, C As Variant, D As V ariant, E As Variant, F As Variant, F1 As Variant, b1 As Variant, b2 As VariantIf 构件类别= "" Then构件类别= 0End IfF = InStrRev(构件类别, "(", Len(构件类别))F1 = InStrRev(构件类别, "件", Len(构件类别))a = InStrRev(构件类别, ")", Len(构件类别))b = InStrRev(构件类别, "x", Len(构件类别))C = InStrRev(构件类别, "X", Len(构件类别))D = InStrRev(构件类别, "*", Len(构件类别))E = InStrRev(构件类别, "×", Len(构件类别))If 构件类别<> "" ThenIf b > 0 Thenb = bElseb = MAX(b, C, D, E)End IfIf N = 0 ThenIf b = 0 ThenLJM = 0ElseLJM = Mid(构件类别, a + 1, b - a - 1) / 10End IfEnd IfIf N = 1 ThenIf b = 0 ThenLJM = 0ElseLJM = Mid(构件类别, b + 1, Len(构件类别) - b) / 10End IfEnd IfIf N = 2 ThenIf b = 0 ThenLJM = 0ElseLJM = Mid(构件类别, F + 1, F1 - F - 1)End IfEnd IfElseLJM = 0End IfEnd FunctionPublic Function GJS(抗震级别As Single, 层数As String, 间距As V ariant, 构件As String, L As Single, LZ高As Single, N As Single) As VariantDim a As Variant, x As Variant, Y As Variant, λ As Variant, R As VariantDim h As Variant, h1 As VariantIf N = 1 ThenR = 1ElseR = 0End IfIf 抗震级别<= 2 Thenλ = 2Elseλ = 1.5End IfIf 构件= "Z" ThenIf 层数= "基础" Thenh = L / 3: h1 = L / 6Elseh = h1 = L / 6End Ifh = MAX(h, LZ高, 50, 0)h1 = MAX(h1, LZ高, 50, 0)End IfIf 构件= "L" Thenh = LZ高* λ: h1 = LZ高* λEnd Ifh = h: h1 = h1If 间距= "" Then间距= 0End Ifa = InStrRev(间距, "/", Len(间距))If 间距<> 0 ThenIf a > 0 And L > 0 And L > h + h1 Thenx = Mid(间距, 1, a - 1) / 10Y = Mid(间距, a + 1, Len(间距) - a) / 10If x < 20 Thenx = x + RElsex = xEnd IfIf Y < 20 ThenY = Y + RElseY = YEnd IfGJS = Int((h + h1) / x + 1 + (L - h - h1) / Y) End IfIf a > 0 And L > 0 And L <= h + h1 Then x = Mid(间距, 1, a) / 10If x < 20 Thenx = x + RElsex = xEnd IfGJS = Int(L / x + 1)End IfIf a = 0 And L > 0 ThenIf 间距< 200 Then间距= 间距+ R * 10Else间距= 间距End IfGJS = Int(L * 10 / 间距+ 1)End IfEnd IfEnd FunctionPublic Function GS(备注As String) As IntegerDim a As Variant, b As Variant, C As Variant, D As Variant, E As Variant Dim F As Variant, F1 As Variant, M As VariantDim BZ As Variant, BZ1 As VariantDim s As Variant, S1 As Variant, M1 As VariantDim SA As Variant, SB As Variant, M2 As VariantDim SZ1 As Variant, SZ2 As VariantIf 备注= "" Then备注= 0End Ifa = InStrRev(备注, ";", Len(备注))b = InStrRev(备注, ":", Len(备注))C = InStrRev(备注, ",", Len(备注))D = InStrRev(备注, "/", Len(备注))E = a + b + C + DF = InStrRev(备注, "筋", Len(备注))F1 = InStrRev(备注, "铁", Len(备注))M = F + F1If E = 0 And M > 0 ThenIf Len(备注) = M ThenGS = 0ElseGS = Mid(备注, M + 1, Len(备注) - M) / 1End IfEnd IfIf E > 0 ThenBZ = Mid(备注, 1, E - 1): BZ1 = Mid(备注, E + 1, Len(备注) - E)s = InStrRev(BZ, "筋", Len(BZ))S1 = InStrRev(BZ, "铁", Len(BZ))M1 = s + S1SA = InStrRev(BZ1, "筋", Len(BZ1))SB = InStrRev(BZ1, "铁", Len(BZ1))M2 = SA + SBIf Len(BZ) = M1 ThenSZ1 = 0ElseSZ1 = Mid(BZ, M1 + 1, Len(BZ) - M1 + 1) / 1End IfIf Len(BZ1) = M2 ThenSZ2 = 0ElseSZ2 = Mid(BZ1, M2 + 1, Len(BZ1) - M2 + 1) / 1 End IfGS = SZ1 + SZ2End IfEnd Function。