大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

excel vba真正的动态数组实例

Admin | 2010-10-22 9:51:06 | ReadNums | 25159 | 标签 Excel教程 | 打印本页
     

  纵观网络中的各种资料,没有哪一个能对excel vba中的动态数组提供更好的实例。

  本文,应大众的需求,考虑到初学者的困惑,因此,特地给大家奉献上一篇难得的好文章,那就是:excel vba真正的动态数组实例。

  一、动态数组的定义

  动态数组的定义,一开始不需要给数组标明上界和下界。直接定义即可,如下面的代码:

  Dim MyStr() As String

  这样,就定义了一个动态数组及其名称:MyStr(),现在,该数组的上界下界都是个未知数,也就是说,数组中到底有没有内容或到底有什么内容,是个未知数。

  因此,要使用动态数组,就必须对其定义好下界和上界。

  二、给动态数组确定下界和上界

  给动态数组重新确定下界和上界,那么,分两种情况。

  ①保留原值

  采用此代码:ReDim Preserve MyStr(n) 'n为数组长度

  ②不保留原值

  采用此代码:ReDim MyStr(n) 'n为数组长度

  ③以上两种情况的实例

  下面我们看如上两种情况的小实例:

  比如:

  Dim MyStr() As String
  ReDim MyStr(2)
  MyStr(0)=”1”
  MyStr(1)=”2”

  现在,这个动态数组有两个值了,分别是0和1,现在,我们再重新确定该数组的长度。

  当然,重新确定自然又有两种情况了。

  A、保留原有数据

  ReDim Preserve MyStr(3) '原来长度是2,现在重新确定为3,并且,保留原有的数据。
  MyStr(2)=”3” '现在,该数组就有三个值了,分别是:

  MyStr(0)为1、MyStr(1)为2、MyStr(2)为3

  B、不保留原有数据

  如果我们使用如下代码

  ReDim MyStr(3)
  MyStr(2)=”3”

  现在,该数组的长度尽管为3,但是,里面却只有一个数据了,那就是,MyStr(2)的值是3,而MyStr(0)和MyStr(1)里面,什么都没有。

  关键字:Preserve的作用就的保留原有值,请根据需要加以取舍。

  三、动态数组与EXCEL的结合使用实例

  Dim n As Integer
  n = 0
  Dim MyStr() As String
  For i = 1 To Sheet1.UsedRange.Rows.Count
   For j = 1 To Sheet1.UsedRange.Columns.Count
    n = n + 1
    ReDim Preserve MyStr(n) '给动态数组重定义一个实际的大小
    MyStr(n - 1) = Sheet1.Cells(i, j).Value '存到动态数组里去
   Next j
  Next i
  For Each MyArray In MyStr
   MsgBox "数组的值是" & MyArray
  Next

  以上代码的功能是:将Sheet1中已经有数据的单元格区域,通过VBA代码循环找到每行每列对应的单元格的值,通过对话框显示出来。

  注意哦,数组的使用,其下界都是从0开始的。


问题未解决:搜索文章

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
感谢大家的支持。
20xx年x月x日

……