VB 程序运行出现 Run-time error 340, control array element “3”doesn't exist 求大神解答

qq_36701417 2016-11-18 02:58:46
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
...全文
1058 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2016-11-21
  • 打赏
  • 举报
回复
大概是复制时忘记了按下 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) 控件数组,索引号是否连续,是否足够到达循环变量的最大值。
一如既往哈 2016-11-18
  • 打赏
  • 举报
回复
这个,你好歹也要编译一下,排除基本的语法,语句的错误吧.....
舉杯邀明月 2016-11-18
  • 打赏
  • 举报
回复
也不说说是在哪句代码上报错!!! 就么这“贴”一段乱七八糟的代码…… 另: 你的这段代码,根本就不能运行吧! 在 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 = ........” 啊!

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧