美文网首页零基础自学VBA
二十二讲 数组空间有关问题

二十二讲 数组空间有关问题

作者: 肉丸子豆 | 来源:发表于2017-05-03 07:51 被阅读6次

1 数组旳大小

Lbound(数组)可以获取数组的最小下标

Ubound(数组)可以获取数组的最大上标

Ubound(数组,1)可以获取数组的行方面最大上标

Ubound(数组,2)可以获取数组的列方向最大上标

2 动态数组的动态扩充

2.1一维数组的扩充

如果一个数组无法或者不方便计算出总的大小,而在一些特殊情况下又不允许有空位,这时我们就需要用动态的导入方法

Private Sub ComboBox1_GotFocus()

Dim arr(), x, arr1, k

arr1 = Range("a1:a10")

For x = 1 To UBound(arr1)

If arr1(x, 1) > 10 Then

k = k + 1

ReDim Preserve arr(1 To k)

arr(k) = arr1(x, 1)

End If

Next x

ComboBox1.List = arr

End Sub

运行有问题,暂时没发现

2.2 二维数组的扩充

Sub t11()

Dim arr, arr1()

arr = Range("a1:d6")

Dim x, k

For x = 1 To UBound(arr)

If arr(x, 1) = "B" Then

k = k + 1

ReDim Preserve arr1(1 To 4, 1 To k) '应该是K行四列,把行当成列,把列当成行。在列的方向扩充。

arr1(1, k) = arr(x, 1)

arr1(2, k) = arr(x, 2)

arr1(3, k) = arr(x, 3)

arr1(4, k) = arr(x, 4)

End If

Next x

Range("a8").Resize(k, 4) = Application.Transpose(arr1) '行列转置

End Sub

这样扩充的方法比较难以掌握。可以用以下的方法

Sub d8()

Dim arr, arr1(1 To 1000, 1 To 4)

arr = Range("a1:d6")

Dim x, k

For x = 1 To UBound(arr)

If arr(x, 1) = "B" Then

k = k + 1

arr1(k, 1) = arr(x, 1)

arr1(k, 2) = arr(x, 2)

arr1(k, 3) = arr(x, 3)

arr1(k, 4) = arr(x, 4)

End If

Next x

Range("a15").Resize(k, 4) = arr1

End Sub

3 清空数组

把原来数据清除掉重新装

erase arr1

Sub d9()

Dim arr, arr1(1 To 1000, 1 To 1)

Dim x, m, k

arr = Range("a1:a16")

For x = 1 To UBound(arr)

If arr(x, 1) <> "" Then

k = k + 1

arr1(k, 1) = arr(x, 1)

Else

m = m + 1

Range("c1").Offset(0, m).Resize(k) = arr1

Erase arr1 '数组清空,重新装数据

k = 0 'k也需要初始一下,k是计数器

End If

Next x

End Sub

相关文章

  • 二十二讲 数组空间有关问题

    1 数组旳大小 Lbound(数组)可以获取数组的最小下标 Ubound(数组)可以获取数组的最大上标 Uboun...

  • 2.选择排序(用js学算法)

    数组: 数组带来的问题: 额外请求的数组储存空间,请求的位数少不够用,请求的位数多如果用不到会浪费。数组 速度方面...

  • UIView 的学习中遇到的问题

    问题 一个空间看不见的几个可能 有关 layoutSubviews

  • 背包九讲学习笔记

    从上到下顺序遍历 01背包问题 使用二维数组 01背包问题 空间复杂度优化 使用一维数组 重点:此处必须从后往前遍...

  • Confluence 6 删除一个空间

    删除一个空间将会完全删除空间和空间的所有内容,包括有关这个空间的所有日历,和链接到这个空间中的问题。只有具有空间管...

  • 【JavaScript】数组去重

    话说面试常会碰到面试官会问JavaScript实现数组去重的问题,最近刚好在学习有关于JavaScript数组相关...

  • numpy数组存储+内存空间问题

    在神经网络中经常使用到numpy,那么numpy选用哪种存储方式,更好? 1.先了解numpy数组占用内存空间的大...

  • JavaScript 数组去重的多种方法原理详解

    JavaScript 数组去重的多种方法原理详解 说明 数组去重,这是一个面试经常会遇见的问题,网上讲数组去重的文...

  • Leetcode-#27移除元素(数组)

    问题描述 给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。 不要为其他数组分配额外空间,...

  • 【初级】移除元素

    问题:给定一个数组和一个值,在这个数组中原地移除指定值和返回移除后新的数组长度。不要为其他数组分配额外空间,你必须...

网友评论

    本文标题:二十二讲 数组空间有关问题

    本文链接:https://www.haomeiwen.com/subject/yfhgzttx.html