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
...全文
1321 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 = ........” 啊!
内容概要:本文围绕“基于共享储能服务的智能楼宇双层优化配置”展开研究,提出了一种结合上层共享储能配置优化与下层楼宇内部能源调度优化的双层协同模型,通过Matlab代码实现,旨在提升智能楼宇在复杂能源环境下的运行效率与经济性。研究充分考虑光伏出力、负荷需等不确定性因素,引入多维核密度估计、场景生成与削减等技术进行不确定性建模,并融合需响应、微电网调度等先进理念,实现了对综合能源系统中储能资源的高效配置与动态调控,具有较强的理论深度与工程应用价值。; 适合人群:具备电力系统、可再生能源、优化算法或综合能源系统等相关背景,从事科研、工程应用或课题研究的研发人员、研究生及高年级本科生。; 使用场景及目标:①应用于智能楼宇、园区微电网、虚拟电厂等场景中的储能规划与运行优化;②支撑高水平学术论文(如EI/SCI)的复现、课题申报、毕业设计及实际项目的双层优化建模与解实践。; 阅读建议:建议结合提供的Matlab代码进行实操演练,重点理解双层优化架构的设计逻辑、解策略(如Benders分解、主从博弈等)及不确定性处理方法,同时可参考文中关联技术(如场景生成、需响应)拓展研究思路与应用场景。

7,787

社区成员

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

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