1  错误例子

    For i = 1 To count_newRandomizep2 = Int(1 + 10 * Rnd)Debug.Print "第" & i & "次随到的p2=" & p2ReDim  arr7(1 To i)                        '这里没写preserve 害的好惨!!arr7(i) = p2Debug.Print "arr7(" & i & ")=" & arr7(i)Next
  • 这里如果不加preserve
  • 从现在赋值时看,每个arr7的内容都会是对的
  • 但是每次赋值的时候,之前的内容全部都清空了
  • 会导致 arr7() 这个数值最后只有1个元素是有值的,前面都是空元素
  • 这个还不容易发现
  • 但这个循环结束后,后面 再加1个循环遍历数值就发现了

2 正确例子

    For i = 1 To count_newRandomizep2 = Int(1 + 10 * Rnd)Debug.Print "第" & i & "次随到的p2=" & p2ReDim Preserve arr7(1 To i)                arr7(i) = p2Debug.Print "arr7(" & i & ")=" & arr7(i)Next

3 重点语句:

  • 我这里省略了,函数/过程开始,先 dim arr7() 如果不定义,arr7()会被认为是 函数而不是数组
  • 动态数组 dim arr7()  每次使用前都要 先redim()
  • 可以在循环里,多次,重复 redim (1 to i ) 但是这样会丢失之前得数据,只保留了数组arr7()最后一个数据。
  • 可以在循环里,多次,重复 redim preserve  (1 to i ) ,这个要注意,如果是preserve里 ,就得保证,arr7()  数组不能变小,否则可能之前得数据就无法 preserve了。
  • 所以在循环里,动态,多次重复redim() 数组时,都要记得加preserve!!! 同时注意数组得不能变小才行!!!
  • ReDim Preserve arr7(1 To i)

VBA 在循环里多次redim动态数组一定注意,需要加preserve相关推荐

  1. VBA 为什么你redim() 动态二维数组总出错?因为 redim 动态数组不太适合和循环搭配

    1总结 1.1 如何避免出错 如果是想生成一个二维数组,最后用静态声明,或则二次声明redim 一个足够大的动态数组 1.2 出错的原因是什么? redim时只有最后1维可变化,redim不太适合和循 ...

  2. c#自建Redim动态数组

    using System; namespace Redim {  /// <summary>  /// Class1 的摘要说明.  /// </summary>  class ...

  3. VBA每日一练(18),数组array的用法 redim preserve等

    定义方式 dim  arr11 (5) dim  arr12 (0 to 5 ) dim  arr13 (1 to 5) dim arr21(1,5) dim arr22(0 to 1 ,0 to 5 ...

  4. excel vba真正的动态数组实例-按需定义数组大小

    excel vba真正的动态数组实例 一.动态数组的定义 动态数组的定义,一开始不需要给数组标明上界和下界.直接定义即可,如下面的代码: Dim MyStr() As String 这样,就定义了一个 ...

  5. VBA动态数组简单应用

    ###VBA动态数组简单应用 动态数组在VBA中,用于筛选大数据是比较好用的.当一行数据满足筛选要求时,将该行数据写入到新的数组中,逐维增加,最后再将这个新的数组输出到表格. 动态数组和一静态数组定义 ...

  6. 动态数组怎么定义_Excel VBA 数组基础知识,初学者不可不学的关键知识

    今天和大家要说的是VBA数组的基本知识点,等你学到后面就会知道,数组和字典搭配起来真的是事半功倍的啦!所以学习好数组的基本知识点也是必不可少的,基础知识有了,才能有后面的应用. 数组的基本概念 数组其 ...

  7. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  8. python中一个对象只能被一个变量引用吗_Python中for循环里的变量无法被引用的解决方法...

    在之前的编程语言里,学到for循环里面是可以重置变量i的值的,然后让整个for循环从头开始,但是在python里面却行不通这是为什么呢? 在python中,for循环相当于一个迭代器(Iterator ...

  9. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

最新文章

  1. 吴恩达深度学习笔记(83)-LeNet-5、AlexNet和VGGNet网络知多少
  2. 学计算机专业的毕业证,对于计算机专业的同学来说,学历真的那么重要吗?
  3. php变量什么情况下加大括号{}
  4. [Java基础]Junit测试
  5. 20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结
  6. 使用Python分析最新2000封电子邮件的时间分布
  7. Pipeline As Code With Jenkins2.0
  8. npm install 报错:node-pre-gyp ERR! 问题解决
  9. 添加Extension库
  10. 导出数据库数据至CSV格式
  11. 怎样复制秀米html码,秀米微信图文编辑器如何复制?
  12. 中山大学农学院袁超磊课题组博士后招聘
  13. 第一章节: 光源种类介绍
  14. 【FlashDB】第二步 FlashDB 移植 STM32L475 使用QSPI驱动外部 flash W25Q64之 SFUD 移植
  15. 大数据十大“关键词”
  16. 最终幻想:探讨小鹏G9 800V 高压动力系统和架构路线
  17. Linux基础第一章:基础知识与基础命令(第三部分)
  18. fourier feature networks
  19. 某东 appck 转pt_pin 转wq_skey
  20. Kibana5数据探索使用(Discover功能)

热门文章

  1. php重启后卡顿,电脑突然卡顿严重
  2. 2021-2027全球及中国合成孔径雷达卫星服务行业研究及十四五规划分析报告
  3. 成功解决:Module build failed: Error: Vue packages version mismatch
  4. Java线程状态流转及部分函数说明
  5. 每个软件工程师都应该知道的有关实时数据的统一概念
  6. word中出现红色字体且带下划线,怎么办?
  7. 权重掩码单网络多任务:Piggyback: Adapting a Single Network to Multiple Tasks by Learning to Mask Weights
  8. 英伟达vGPU测试——vmware
  9. ext winds点击超连接_东南大学崔铁军院士团队在信息超材料领域取得新进展
  10. 深度linux桌面卸载wps,安装,卸载WPS-office报错,如何解决?