【VBA编程】08.数组

【数组简介】
数组其实就是一组相同类型的数据的有序集合,其形象表示就像线性表。在存储数据的时候,首先在内存中分配一个连续的存储空间,将各个元素按顺序存放在连续的存储单元格中。
【定义静态数组】
Dim 数据组(数据元素的上下界,...) As 数据类型
Dim a(10) As Integer ‘其数组名为a 其下标从0开始,下界为10 期中可访问的元素为a(0)到a(10)
Dim b(1 To 10) As Double ‘可访问元素为a(1)到a(10)
【Tips】
(1)多维数组的维数最高可达60维
(2)使用静态数组时,必须指明数组的上界和下界及数组的维数,且数组中的上下界必须使用常量,不能使用变量
(3)每个数组元素只能存储一个数据
【代码区域】

Private Sub 数组初始化()
    Dim yunnan(1 To 4) As String
    yunnan(1) = "昆明"
    yunnan(2) = "曲靖"
    yunnan(3) = "昭通"
    yunnan(4) = "大理"
    yunnan(4) = "玉溪"
    For Each city In yunnan
     Debug.Print city
    Next
End Sub

【执行结果】

【二维静态数组】
【代码区域】

Private Sub 矩阵赋值()
    Dim i As Integer
    Dim j As Integer
    Dim a(1 To 3, 1 To 5) As Integer
    ‘使用i与j的乘积填入数组
    For i = 1 To 3
     For j = 1 To 5
      a(i, j) = i * j
      Next j
    Next i
    For i = 1 To 3
     For j = 1 To 5
      Debug.Print "a(" & i & ", " & j & ")=" & a(i, j) & Space(5);
      Next j
     Debug.Print
    Next i

End Sub

【结果展示】

【二维动态数组】
Dim 数组名() As 数据类型
Dim a() As Double

【代码区域】

Private Sub 数组赋值()
    Dim a(1 To 3) As Integer
    Dim b() As Integer
    Dim i As Integer
    ‘初始化数组a中的值
    For i = 1 To 3
        a(i) = i
        Next
        b = a
        ‘打印a数组的值
        Debug.Print "a数组的值为:"
        Debug.Print "a(1)=" & a(1)
        Debug.Print "a(2)=" & a(2)
        Debug.Print "a(3)=" & a(3)
        ‘打印b数组的值
        Debug.Print "b数组的值为:"
        Debug.Print "b(1)=" & b(1)
        Debug.Print "b(2)=" & b(2)
        Debug.Print "b(3)=" & b(3)
End Sub

【结果展示】

时间: 2024-12-13 15:50:47

【VBA编程】08.数组的相关文章

Excel中的VBA编程

目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错.而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作. 1.以Excel 2007为例,如果要进行VBA编程,需要启用"开发工具" 选项.在Excel 选项对话框中勾选[在功能区显示"开发工具"选项卡]复选框. 在开发工具选项中点击"查看代码",打开Microsoft Visual Basic界面. 2.在M

VBA编程的工程性规划

看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称--"VBAProject",以方便以后可能要进行的跨VBA工程编码1.定义一个命名为"O"的标准模块[拼音中"O"字母的读音,意指"我"这个字],用于定义所有的全局对象,管理本工程的代码与数据,主要API:    [1]About(Optional ShowD

编程算法 - 数组中的逆序对 代码(C)

数组中的逆序对 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在数组中的两个数字如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对. 输入一个数组, 求出这个数组中的逆序对的总数. 使用归并排序的方法, 辅助空间一个排序的数组, 依次比较前面较大的数字, 算出整体的逆序对数, 不用逐个比较. 时间复杂度: O(nlogn) 代码: /* * main.cpp * * Created on: 2014.6.12 * Author:

编程算法 - 数组中只出现一次的数字 代码(C)

数组中只出现一次的数字 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 一个整型数组里除了两个数字以外, 其他的数字都出现了两次. 请写程序找出这两个只出现一次的数字. 如果从头到尾依次异或数组中的每一个数字, 那么最终的结果刚好是那个只出现一次的数字. 根据结果数组二进制某一位为1, 以此分组, 为1的一组, 为0的一组, 再重新进行异或. 最后得出两个结果. 时间复杂度O(n). 代码: /* * main.cpp * * Create

网易云课堂_C++程序设计入门(下)_第8单元:年年岁岁花相似– 运算符重载_第8单元 - 作业2:OJ编程 - 重载数组下标运算符

第8单元 - 作业2:OJ编程 - 重载数组下标运算符 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 练习数组下标运算符重载 依照学术诚信条款,我保证此作业是本人独立完成的. 1 练习数组下标运算符重载(6分) 本题目具体内容请参见 [第8单元 - 单元作业2说明] 时间限制:500ms内存限制:32000kb #include <iostream> #in

60.编程统计数组a中正数、0、负数的个数

#include<iostream> using namespace std; int main() { int x=0,y=0,z=0; int a[10]; cout<<"please input 10 numbers:"<<endl; for(int i=0;i<10;i++) { cin>>a[i]; } for(int j=0;j<10;j++) { if(a[j]==0) { x++; } } for(int m=

网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 本单元作业练习创建模板类.单元作业会涉及冒泡排序.线性查找等算法.如果对排序.查找不熟悉,可以自行baidu或者google 依照学术诚信条款,我保证此作业是本人独立完成的. 1 编写一个数组类模板 Array,能够存储不同类型的数组元素.对数组元素进行查找.

《C专家编程》数组和指针并不同--多维数组

<C专家编程>数组和指针并不同 标签(空格分隔): 程序设计论著笔记 1. 背景理解 1.1 区分定义与声明 p83 声明相当于普通声明:它所说明的并非自身,而是描述其他地方创建的对象,声明可以多次出现: 定义相当于特殊声明:它可以为对象分配内存,只能出现在一个地方. 1.2 数组和指针的访问方式 左值和右值 ???????? X = Y ; 符号X的含义是X所代表的地址,这被称为左值,左值在编译时可知,左值表示存储结果的地方. 符号Y的含义是Y所代表的地址的内容,这被称为右值,右值直到运行时

编程算法 - 数组构造二叉树并打印

数组构造二叉树并打印 本文地址: http://blog.csdn.net/caroline_wendy 数组: 构造二叉树, 需要使用两个队列(queue), 保存子节点和父节点, 并进行交换; 打印二叉树, 需要使用两个队列(queue), 依次打印父节点和子节点, 并进行交换; 二叉树的数据结构: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pParent; BinaryTreeNode* m_pLeft; BinaryT

Scala编程入门---数组操作之数组转换

使用yield和函数式编程转换数组 //对Array进行转换,获取的还是Aarry val a = Array(1,2,3,4,5) val a2 = for(ele <- a) yield ele * ele //对ArrayBuffer进行转换,获取的还是ArrayBuffer val b = ArrayBuffer[Int]() b+=(1,2,3,4,5) val b2=for(ele <- b) yield ele*ele //结合if守卫, 仅转换需要元素 val a3= for(