大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解的是第34讲:数组的传递。在应用数组的时候,我们往往需要要把数组的值由一个数组传递给另外一个数组,就如同变量的传递一样:

A=B ’把B值赋给A

C=A ’把A值赋给C

如上例,就完成了把值的传递的过程,分别把B的值传递给了A;把A的值传递了B,那么数组是否也可以呢?我们看下面的数组传递:

下面看我给出的代码:

Sub MyNZsz_34() '第34讲 如何把一个固定数组的值传递给另外一个数组

'直接赋值是不对的

Sheets("34").Select

Dim arr1(1) As Integer '定义一个一维固定数组arr1(1)

Dim arr2(1) As Integer '定义一个一维固定数组arr2(1)

arr1(0) = 1 '给arr1(1) 的数组元素0赋值为1

arr1(1) = 2 '给arr1(1) 的数组元素0赋值为2

arr2 = arr1 '讲数组1传递给数组2

MsgBox (arr2(1)) '提示数组2的元素1的值

End Sub

上述代码的过程要完成的是首先定义两个一维数组arr1(1)和 arr2(1);然后先给其中的一个数组arr1(1)赋值,这个数组共用两个元素分别赋值为1,2;然后我们用普通变量赋值的方法把数组arr1(1)赋值给arr2(1);最后提示数组2的元素1的值,那么是否会弹出对话框提示为1呢?

我们看看代码的截图和代码的运行:

1 代码截图

2 运行截图:

这个时候会提示我们不能这样给数组赋值。由此我们可以看出:对于给定的2 个静态数组不能相互赋值,否则将出现编译错误:不能给数组赋值。

那么要如何完成数组的值由一个数组传递给另外一个数组呢?常用的方法:①将静态数组赋值给动态数组②将静态数组赋值给一个变体变量③再有就是循环的方法。对于循环的方案比较简单,不再多说,这里着重讲解前两个方法。

对于动态数组我们在之前的讲解中已经讲了很多了,对于变量体大家要加强理解:数组可以用Variant 变体变量获取一组单元格的值,公式等,当不包括单元格地址。大家要理解Variant 变体变量的意义,当使用数组的这种赋值方法的时候一定要定义这个变量为Variant 变体变量。

对于上面给出的代码,我下面修正:

Sub MyNZsz_34_1() '第34讲 如何把一个固定数组的值传递给另外一个数组

'直接赋值是不对的

Sheets("34").Select

Dim arr1(1) As Integer '定义一个一维固定数组arr1(1)

Dim arr3() As Integer

Dim arr4 As Variant

arr1(0) = 1 '给arr1(1) 的数组元素0赋值为1

arr1(1) = 2 '给arr1(1) 的数组元素0赋值为2

ReDim arr3(1)

arr3 = arr1 '讲数组1传递给数组2

arr4 = arr1

MsgBox "动态数组赋值后:" & arr3(1) '提示数组3的元素1的值

MsgBox "Variant赋值后:" & arr4(1) '提示数组4的元素1的值

End Sub

下面看代码的截图;

代码的运行:

今日内容回向:

1 数组的值如何传递?

2 如何理解变体变量?

举报/反馈

php数组的值传递给另一个数组,如何把一个固定数组的值传递给另外一个数组相关推荐

  1. Java黑皮书课后题第8章:8.29(相同的数组)如果两个二维数组m1和m2具有相同的内容,则它们是相同的。编写一个方法,如果m1和m2相同的话,返回true

    8.29(相同的数组)如果两个二维数组m1和m2具有相同的内容,则它们是相同的.编写一个方法,如果m1和m2相同的话,返回true 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8. ...

  2. 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容13]请编写fun()函数,函数的功能是删去一维数组中相同 ...

  3. 定义一个带参带返回值的方法,实现输出随机数数组

    public class mains { public static void main(String[] args) { // 创建对象,对象名为hello mains hello = new ma ...

  4. 需要排序的最短子数组的长度——是一个排序好的数组,中间某一部分被打乱了,让你找出打乱的那个子数组...

    需要排序的最短子数组的长度 貌似在leetcode上遇到过,就是一个排序好的数组,中间某一部分被打乱了,让你找出打乱的那个子数组. from:https://blog.csdn.net/behboyh ...

  5. Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值

    7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...

  6. /*3.使用二维数组存储班上五个学生三门功课的考试成绩,要求输出每一个学生的总分、平均分、最高分、最低分。

    package HomeWork; import java.util.Arrays; import java.util.Scanner; /*3.使用二维数组存储班上五个学生三门功课的考试成绩,要求输 ...

  7. 将一个数组中的值按逆序重新排放。_六十五、下一个更大的数系列,单调栈解决方法...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. 「---- Runsen」 ❞ 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校 ...

  8. 写一个类Army,代表一支军队,这个类有一个属性Weapon数组w(用来存储该军队所拥有的所有武器), 该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有

    代码 /*开放型题目,随意发挥:写一个类Army,代表一支军队,这个类有一个属性Weapon数组w(用来存储该军队所拥有的所有武器),该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限 ...

  9. 不能使用for循环,传入n和m, 生成一个长度为n,每一项都是m的数组

    逛知乎的时候看到一个问题,不能使用for循环,传入n和m, 生成一个长度为n,每一项都是m的数组.第一反应是递归,然后再想到正则,还在思考中... 递归法 function getArr(n,m) { ...

  10. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...

最新文章

  1. 数据库集群技术 -摘自网络
  2. attention mechanis 的数学理解
  3. 10 i lt shell的if_shell学习(10)- if的使用
  4. 数据结构与算法笔记(九)—— 希尔排序
  5. C error :Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.
  6. [Linux] VIM 代码折叠
  7. “大数据标准”征稿通知
  8. Coding the Matrix作业Python Lab及提交方法
  9. 让程序最小化到任务栏的时候隐藏
  10. android webview 多次加载,关于WebView 重定向行为导致的多次加载的问题
  11. MSN网页上点击连接
  12. jdom生成与解析xml详解
  13. 关于mis系统开发的一些配置含义
  14. oracle8ora-00059,ORA-00059错误分析以及MAXDATAFILES、DB_FILES参数修改
  15. mysql表名大小写设置
  16. 电子元器件3D模型免费下载资源
  17. 防抖节流的实现与区分(详解带代码)
  18. 我的.Subtext二次开发之路系列:无限层次分类
  19. 2018年2月 英语--anything is OK
  20. 2018北邮计算机、网研、网安803考研报考建议

热门文章

  1. vs 没有足够的内存继续执行程序_科赋内存条:韩国和台湾产的有不同?
  2. mysql启动选项只读_MySQL的启动选项和系统变量该如何配置?
  3. 用来处理python字典的方法_python字典的常用方法总结
  4. NXP I.MX6ULL 交叉编译工具链下载地址?
  5. html加减中间的值不能修改,在移动HTML5页面input类型采用number无法控制长度,以及右边显示难看的加减按钮...
  6. qt mysql数据库连接池_qt中使用数据库连接池
  7. oracle 12c undo,Oracle 12C新特性-临时UNDO段(Temporary Undo Segments) | 信春哥,系统稳,闭眼上线不回滚!...
  8. oracle or索引失效_oracle数据库中索引会失效的几种情况
  9. H5_canvas与svg
  10. 安装Android模拟器Genymotion【Android学习入门】