Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2153|回复: 1

跟着校长学VBA之第21集:VBA数组2

[复制链接]
发表于 2013-1-13 21:17 | 显示全部楼层 |阅读模式
一、VBA数组的读取
1.  在内存中读取
      在内存中读取后用于继续运算,直接用下面的格式
        数组变量 (序号)
        数组变量(行数,列数)
  1. Sub d1()
  2.     Dim arr, arr1()
  3.     Dim x As Integer, k As Integer, m As Integer
  4.     arr = Range("a1:a10")    '把单元格区域导入内存数组中
  5.     m = Application.CountIf(Range("a1:a10"), ">10")    '计算大于10的个数
  6.     ReDim arr1(1 To m)
  7.     For x = 1 To 10
  8.         If arr(x, 1) > 10 Then
  9.             k = k + 1
  10.             arr1(k) = arr(x, 1)
  11.         End If
  12.     Next x
  13.     Stop
  14. End Sub
复制代码
2.读取存入单元格中
  1. Sub d2()    '二维数组存入单元格
  2.     Dim arr, arr1(1 To 5, 1 To 1)
  3.     Dim x As Integer
  4.     arr = Range("b2:c6")
  5.     For x = 1 To 5
  6.         arr1(x, 1) = arr(x, 1) * arr(x, 2)
  7.     Next x
  8.     Range("d2").Resize(5) = arr1
  9. End Sub

  10. Sub d3()    '一维数组存入单元格
  11.     Dim arr, arr1(1 To 5)
  12.     Dim x As Integer
  13.     arr = Range("b2:c6")
  14.     For x = 1 To 5
  15.         arr1(x) = arr(x, 1) * arr(x, 2)
  16.     Next x
  17.     Range("a13").Resize(1, 5) = arr1
  18.     Range("d2").Resize(5) = Application.Transpose(arr1)
  19. End Sub

  20. Sub d4()    '数组部分存入
  21.     Dim arr, arr1(1 To 10000, 1 To 1)
  22.     Dim x As Integer
  23.     arr = Range("b2:c6")
  24.     For x = 1 To 5
  25.         arr1(x, 1) = arr(x, 1) * arr(x, 2)
  26.     Next x
  27.     Range("d2").Resize(5) = arr1
  28. End Sub
复制代码
发表于 2019-4-6 12:37 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 18:59 , Processed in 0.298642 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表