vb中Redim语句报错,解决即结贴
vb中Redim语句报错,在线等,解决即结贴!
vb 中,为什么
ReDim fzStatAnalys0(1 To i) As fzStatAnalys 没问题
ReDim Preserve fzStatAnalys0(1 To i) As fzStatAnalys 就报错呢?
------解决方案--------------------
先定义一个数组,再动态改
vb 中,为什么
ReDim fzStatAnalys0(1 To i) As fzStatAnalys 没问题
ReDim Preserve fzStatAnalys0(1 To i) As fzStatAnalys 就报错呢?
- VB code
Public Type fzStatAnalys sbh As String sbxh As String workType As Byte Driver As Long StarTime As Long EndTime As Long keepTime As Long by As String End Type
------解决方案--------------------
先定义一个数组,再动态改
- VB code
Dim i As Integer Dim fzStatAnalys0() As fzStatAnalys i = 2 ReDim fzStatAnalys0(1 To i) As fzStatAnalys fzStatAnalys0(1).by = "1" i = 3 ReDim Preserve fzStatAnalys0(1 To i) As fzStatAnalys Debug.Print fzStatAnalys0(1).by
------解决方案--------------------
redim用来重新定义数组大小, 如果只要更改最后一个维度的大小时,并保留现有数组中的数据就用Preserve
但是redim不能改变数组的类型, 所以后面不要 as XXX
------解决方案--------------------
Dim fzStatAnalys0() As fzStatAnalys
ReDim Preserve fzStatAnalys0(1 To i)