Option Explicit
Dim Data() As Single
Private Sub Command1_Click()
Dim VBExcel As Object
Dim xlbook As Object
Dim xlssheet As Object
Dim i As Integer, j As Integer
Set VBExcel = CreateObject("Excel.Application")
CommonDialog1.FileName = ""
CommonDialog1.Filter = "EXCEL檔案(*.xlsx)|*.xlsx"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then
Exit Sub
Else
Set xlbook = VBExcel.Workbooks.Open(CommonDialog1.FileName)
Set xlssheet = xlbook.Worksheets(1)
VBExcel.Visible = False
ReDim Data(3, 11) As Single
For j = 1 To 11
Data(i, j) = xlssheet.Cells(i, j)
Next j
Next i
End If
For i = 1 To 3
For j = 1 To 9
V(i, j) = Data(i, j)
Next j
Next i
Set xlssheet = Nothing
Set xlbook = Nothing
Set VBExcel = Nothing
Dim WL As Double
Dim L As Double
Dim FH As Double
Dim DW As Double
Dim F As Double
Dim TW As Double
Dim VZ As Double
Dim P As Double
For i = 1 To 3
WL = V(i, 1)
L = V(i, 2)
FH = V(i, 3)
DW = V(i, 4)
F = V(i, 5)
TW = V(i, 6)
VZ = V(i, 7)
P = V(i, 9)
VS(i, 1) = V(i, 3) / V(i, 1)
VS(i, 2) = V(i, 4) / V(i, 2)
VS(i, 3) = V(i, 5) / V(i, 4)
VS(i, 4) = 0.5 * ((0.75 * P * 3.206 * 240) / (V(i, 4) * V(i, 4) * V(i, 5) / V(i, 1))) + 0.5 * ((0.8 * P * 3.206 * 240) / (V(i, 6) * V(i, 7)))
VS(i, 5) = 0.7355 * ((V(i, 6) ^ (2 / 3) * V(i, 7) ^ 3) / P)
Next i
For j = 0 To 28
If j < 9 Then
Text1(j).Text = V(1, j + 1)
ElseIf j < 19 Then
Text1(j).Text = V(2, j - 9)
Else
Text1(j).Text = V(3, j - 19)
End If
Next j
Cmd_Sure.Enabled = True
End Sub
uj5u.com熱心網友回復:
也不說說是在哪句代碼上報錯!!! 就么這“貼”一段亂七八糟的代碼……
另:
你的這段代碼,根本就不能運行吧!
在 Private Sub Command1_Click() 中,只看到后面(中間部分),有一段:
ReDim Data(3, 11) As Single
For j = 1 To 11
Data(i, j) = xlssheet.Cells(i, j)
Next j
Next i
這兒有 Next i ,可是前面沒看到有“ For i = ........” 啊!

uj5u.com熱心網友回復:
這個,你好歹也要編譯一下,排除基本的語法,陳述句的錯誤吧.....uj5u.com熱心網友回復:
大概是復制時忘記了按下 Ctrl 鍵,移走了:ReDim Data(3, 11) As Single
For i = 1 To 3
For j = 1 To 11
Data(i, j) = xlssheet.Cells(i, j)
Next j
Next i
檢查你的 Text1(i) 控制元件陣列,索引號是否連續,是否足夠到達回圈變數的最大值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/67006.html
標籤:VB基礎類
