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 IntegerSet 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 = NothingDim 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 iFor 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 jCmd_Sure.Enabled = True
End Sub

解决方案 »

  1.   

    也不说说是在哪句代码上报错!!! 就么这“贴”一段乱七八糟的代码……
    另:
    你的这段代码,根本就不能运行吧!
    在 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 = ........” 啊!
      

  2.   

    大概是复制时忘记了按下 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) 控件数组,索引号是否连续,是否足够到达循环变量的最大值。