vb中Redim语句报错,在线等,解决即结贴!vb 中,为什么ReDim fzStatAnalys0(1 To i) As fzStatAnalys 没问题R
vb中Redim语句报错,在线等,解决即结贴!
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 IntegerDim fzStatAnalys0() As fzStatAnalysi = 2ReDim fzStatAnalys0(1 To i) As fzStatAnalysfzStatAnalys0(1).by = "1"i = 3ReDim Preserve fzStatAnalys0(1 To i) As fzStatAnalysDebug.Print fzStatAnalys0(1).by
[解决办法]
redim用来重新定义数组大小, 如果只要更改最后一个维度的大小时,并保留现有数组中的数据就用Preserve
但是redim不能改变数组的类型, 所以后面不要 as XXX
[解决办法]
Dim fzStatAnalys0() As fzStatAnalys
ReDim Preserve fzStatAnalys0(1 To i)
