Excel精英培训网

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

[已解决]再问把区域导入VBA数组

[复制链接]
发表于 2014-2-22 20:03 | 显示全部楼层 |阅读模式
10学分
本帖最后由 969341591 于 2014-2-23 00:01 编辑

当我把一个数据区域range("a1:d5")导入到一个数组arr中时,那么此时生成的数组应该是属于静态数组,对不对?当导入后这个数组的每一个元素都已经被赋值(即D2:D4也是被赋了空值),那么我用如下代码计算金额列时是不是算给这个数组中的某些元素(D2:D4区域)中的arr(2,4),arr(3,4),arr(4,4),arr(5,4)重新赋值了?
Sub aa()
      Dim arr
      Dim x%
           arr = Range("a1:d5")
      For x = 2 To 5
          arr(x, 4) = arr(x, 2) * arr(x, 3)
      Next x
End Sub
2004-02-22_133902.png xx.rar (5.79 KB, 下载次数: 5)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-2-22 20:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风林火山 于 2014-2-22 20:11 编辑
  1. Sub aa()
  2.       Dim arr
  3.       Dim x%
  4.            arr = Range("a1:d5")'定义数组
  5.       For x = 2 To 5
  6.           arr(x, 4) = arr(x, 2) * arr(x, 3)'重新赋值
  7.       Next x
  8.       range("a1").resize(5,4)=arr‘将数组重新显示在目标区域
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2014-2-22 20:20 | 显示全部楼层
是的,已经赋值了。  你理解的应该是正确的
回复

使用道具 举报

发表于 2014-2-22 20:25 | 显示全部楼层
1、arr是一个variant变量,是可以随时变化的。当前把一个单元格区域的数值赋值给arr,arr就表现为数组。当把arr赋值为数组后,还可以把arr再次赋值为一个数值,或其他对象。
2、静态数组是指在声明时指定数组的维数、类型,在使用时不能变更其维数;动态数组在声明时没有指定维数,在使用前需要声明其维数。
3、数组的内容在代码中是可以变更的,不管是静态数组还是动态数组。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 12:14 , Processed in 0.243705 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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