不唉起名字 不唉起名字
关注数: 14 粉丝数: 28 发帖数: 1,494 关注贴吧数: 33
实时错误‘5’无效的过程调用或参数,哪位大神解答下怎么回事。 Option Explicit Private Function Kthanshu(ByVal J As Single, ByVal PD As Single, ByVal AA As Single, ByVal Z As Integer) As Single '调用Bjiangcanshu表格数据算KT' Dim s(1 To 39), t(1 To 39), u(1 To 39), v(1 To 39) As Integer Dim C(1 To 39) As Single Dim i, k As Integer Dim xlapp As Excel.Application 'Excel对象 Dim xlbook As Excel.Workbook '工作簿 Dim xlsheet As Excel.Worksheet '工作表 Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象 Set xlbook = xlapp.Workbooks.Open(App.Path & "\Bjiangcanshu.xls") xlapp.Visible = False '设置EXCEL对象可见(或不可见) Set xlsheet = xlbook.Worksheets(1) For i = 1 To 39 C(i) = Val(xlsheet.Cells(i + 2, 2)) '这里的C(i)位于第i行第2列 s(i) = Val(xlsheet.Cells(i + 2, 3)) t(i) = Val(xlsheet.Cells(i + 2, 4)) u(i) = Val(xlsheet.Cells(i + 2, 5)) v(i) = Val(xlsheet.Cells(i + 2, 6)) Next i xlbook.Close (True) '关闭工作簿 xlapp.Quit '结束EXCEL对象 Set xlapp = Nothing '释放xlApp对象 Kthanshu = 0 For k = 1 To 39 Kthanshu = Kthanshu + C(k) * (J ^ s(k)) * (PD ^ t(k)) * (AA ^ u(k)) * (Z ^ v(k)) Next k End Function Private Function Kqhanshu(ByVal J As Currency, ByVal PD As Single, ByVal AA As Single, ByVal Z As Integer) As Single '调用Bjiangcanshu表格数据算KQ' Dim s(1 To 47), t(1 To 47), u(1 To 47), v(1 To 47) As Integer Dim C(1 To 47) As Single Dim i, k As Integer Dim xlapp As Excel.Application Dim xlbook As Excel.Workbook Dim xlsheet As Excel.Worksheet Set xlapp = CreateObject("Excel.Application") Set xlbook = xlapp.Workbooks.Open(App.Path & "\Bjiangcanshu.xls") xlapp.Visible = False Set xlsheet = xlbook.Worksheets(1) For i = 1 To 47 C(i) = Val(xlsheet.Cells(i + 2, 9)) s(i) = Val(xlsheet.Cells(i + 2, 10)) t(i) = Val(xlsheet.Cells(i + 2, 11)) u(i) = Val(xlsheet.Cells(i + 2, 12)) v(i) = Val(xlsheet.Cells(i + 2, 13)) Next i xlbook.Close (True) xlapp.Quit Set xlapp = Nothing Kqhanshu = 0 For k = 1 To 47 Kqhanshu = Kqhanshu + C(k) * (J ^ s(k)) * (PD ^ t(k)) * (AA ^ u(k)) * (Z ^ v(k)) Next k End Function Private Function Bp1hanshu(ByVal J As String, ByVal Kq As String) As String 'Bp1' Bp1hanshu = 33.06746 * (J ^ 2.5) * (Kq ^ 0.5) End Function Private Function Bp2hanshu(ByVal J As String, ByVal Kq As String) As String 'BP2' Bp2hanshu = 0.32653 * (J ^ -1.5) * (Kq ^ 0.5) End Function Private Sub Command1_Click() '坐标轴' Dim i As Single Cls Form1.Scale (-2, 2.5)-(5, -2) Line (0, 0)-(4, 0) Line (0, 0)-(0, 1.8) CurrentX = 2: CurrentY = -0.08: Print "0.1735*BP1^0.5" CurrentX = -0.25: CurrentY = 0.9: Print "P/D" For i = 0 To 4.1 Step 0.1 Line (i, 0)-(i, 1.8) If (i * 10) Mod 2 = 0 Then CurrentX = i - 0.03: CurrentY = -0.01: Print Format((i / 2) + 0.2, "0.0") Else End If Next i For i = 0 To 1.9 Step 0.1 Line (4, i)-(0, i) If (i * 10) Mod 2 = 0 Then CurrentX = -0.14: CurrentY = i + 0.01: Print Format((i / 2) + 0.5, "0.0") Else End If Next i End Sub Private Sub Command2_Click() '等1/J线' Dim J, PD1, AA1, Kq, Bp1, J1, i, x, y, h As Single Dim Z1 As Integer AA1 = 0.65 Z1 = 6 For i = 0.7 To 4.3 Step 0.05 '实际1/J值' For J = 1.4 To 0.5 Step -0.01 '实际P/D值' J1 = Format(1 / i, "0.00") PD1 = J Kq = Kqhanshu(J1, PD1, AA1, Z1) Bp1 = 33.06746 * (i ^ 2.5) * (Kq ^ 0.5) x = (0.1739 * Bp1 ^ 0.5 - 0.2) * 2 y = (J - 0.5) * 2 PSet (x, y), RGB(0, 0, 255) Next J Next i End Sub
1 下一页