Olhado_ 发表于 2022-7-6 15:10:33

重新调整阵列大小

因此,我了解如何重新调整数组大小,甚至已经这样做了;但我有这个案例(附件),我似乎无法重新调整阵列的大小。我基本上有一个动态数组,可以通过删除第一项(零项)来重新调整大小;但是我想再次调整这个数组的大小,以去掉空字符串。然而,我已经尝试了我知道的每一个可能的选择,我似乎无法得到它。我甚至试过,只是为了把数字粘在里面(相对于计算值),我仍然没有运气。
 
我尝试过的两种方法是在以下方面进行硬编码:

ReDim intFirstBlank As Integer

 
然后,我尝试执行一个循环过程,旨在从数组中删除项目,以及我第一次用来重新调整数组大小的内容。
 
有人能看一下吗?
 
我特别困惑的是,为什么我可以重新调整它的大小一次;但不会再发生了。
 
谢谢
克里斯
测验拉链

fixo 发表于 2022-7-6 15:46:26

尝试更改代码的下一部分,例如:

AdjustArray:

Do While (UBound(MyArray) >= intFirstBlank)
ArrayRemoveItem MyArray, UBound(MyArray)
ReDim Preserve MyArray(0 To UBound(MyArray) - 1)
Loop

 
但未经测试
 
~'J'~

rocheey 发表于 2022-7-6 16:28:26

目前需要筛选的代码太多,但有几个地方需要开始:1)将动态数组变暗为常数2)将实数数组传递给子数组作为安全数组3)使用未减数的“File”变量逐步遍历减少的数组的结果4)用一个巨大的字符串播种列表框,而不是添加单个项5)用lbund 0变暗数组,但在列表框中只植入数组的第1项。
 
删除数组项的一些快速代码:
'剪断------------剪断-----------
Sub main()
Dim maxarray As Long:maxarray=5
ReDim MyArray(0到maxarray)
调试。打印“种子阵列”
对于i%=LBound(MyArray)到UBound(MyArray)
MyArray(i%)=字符串$(i%+1,Chr$(65+i%)
调试。打印i%,MyArray(i%)
下一个i%
 
 
对于j%=1到3
调试。打印“擦除第一个数组项”
'删除项目0
对于i%=LBound(MyArray)到UBound(MyArray)-1
MyArray(i%)=MyArray(i%+1)
调试。打印i%,MyArray(i%)
下一个i%
maxarray=maxarray-1
ReDim Preserve MyArray(0到maxarray)
下一个j%
 
末端接头
页: [1]
查看完整版本: 重新调整阵列大小