乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>vba</em>中如何将<em>数组</em>中的值进行<

<em>vba</em>中如何将<em>数组</em>中的值进行<

作者:乔山办公网日期:

返回目录:excel表格制作


数组赋值不能直接这样用 等于 某个单元zd格区域……要通过循环语句逐个赋值……考虑修改如下:
Dim aa() As Double
ReDim arr(1 To 1036)
For i = 1 To 1036
arr(i) = Cells(i, 8)
Next
Stop

由于你使用了 动态数组 所以在赋值前 必须给它一个重新设置范围的语句 ReDim……

最简单的排序,须借助excel的函数:
Sub SmallSort()
Dim a(-1 To 3), i, b()
For i = LBound(a) To UBound(a)
a(i) = Int(Rnd * 10) '赋值给a()
Next
Rows("5:6").Delete
[a5].Resize(1, UBound(a) - LBound(a) + 1) = a
'下面是排序方法,结果放在b()内
ReDim b(1 To UBound(a) - LBound(a) + 1)
For i = 1 To UBound(b)
b(i) = Application.WorksheetFunction.Small(a, i) 'Small为从小到大,large为从大到小
Next
[a6].Resize(1, UBound(b)) = b
End Sub
aaa=array(1,6,8,18,19,20,25,62,63,64)
for i=0 to ubound(aaa)
msgbox(aaa(i))
next

定义数组
dim arr() as string ' 此处定义一个0索引的字符串数组
redim arr(1 to 100) '对数组进行重定义长度为100(常量100也可以是已经初始化的变量)
排序有很多方法,冒泡法、插入法、选择法之类的,这要看你的数组素的类型和你排序的方式,简单点的看如下示例:
...
dim arr(1 to 5) as integer,i!,tmp as double
... ' 此处省略了为数组arr赋值的代码
for i =1 to ubound(arr)-1
tmp=arr(i)
if tmp>arr(i+1) then arr(i)=arr(i+1) '数据将从小到大排列
arr(i+1)=tmp
next

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网