lzth.net
当前位置:首页 >> vBA 二维数组 >>

vBA 二维数组

可以用数组变量通过工作表函数index取二维数组中的一行或一列,但无法直接取其中的多行多列.要取多行多列,需要用循环方法赋值.

答:二维数组赋值有两种方法,第一种方法是单元格区域装入二维数组,如:arr=range("a1:b19")就可以把单元格区域的值装入数组arr 第二种就是通过循环装入,一个个数值装入.例:向二维数组写入数据和读取 dim x as integer, y as integer dim arr(1 to 5, 1 to 4) for x = 1 to 5

一维给二维赋值,参考实例如下:for (i = 0; i { for (j = 0; j { scanf("%d", &a[j]); } strncpy(b[i], a, max); //memcpy(b[i], a, max); } 二维数组赋值有两种方法,第一种方法是单元格区域装入二维数组,如:arr=range("a1:b19")就可以把单元格区域的值装入数组arr 第二种就是通过循环装入,一个个数值装入.例:向二维数组写入数据和读取;dim x as integer, y as integer dim arr(1 to 5, 1 to 4) for x = 1 to 5

我有一个办法:用array函数,一个array可以代表一个一维数组,相互嵌套就可以表示多维,如下面创建一个两维数组.Dim hzhz = Array(Array(1, 6, 37, 38, 39, 40), Array(1, 6, 37, 38, 39, 40))特别注意:引用时不能用一般的二维数组比如 hz(1,2) 的方式去引用,而是用 hz(1)(2)的方式.而且数组下标都是默认从0开始的.如果要方便从1开始,我感觉也只能用循环逐个赋值的方法,如楼下的做法.

VBA定义二维数组的例子:Dim Arr(1 To 100, 0 To 1)

VBA中动态定义一个二维数组,案例代码如下://定义动态数组tt Sub tt() Dim a() As Integer ReDim a(1 To 2, 1 To 1) As Integer a(1, 1) = 10 i = 10 ReDim Preserve a(1 To 2, 1 To i) As Integer MsgBox a(1, 1) End Sub

可以用Resize来实现,示例如下:arr=range("A1:Z1")'将第一行,A到Z列,赋值给数组arrrange("A2").resize(ubound(arr),1)=application.transpose(arr)'将数组Arr转置后,赋予A2开始的A列中.关于Resize属性:调整指定区域的大小.返回

很久没玩vb了,忘得差不多了,但我想肯定行的.不过既然会vba了,何必要用vb呢,vba也行.用工作簿的open事件启动代码,然后在代码运行完成后关闭表格.有什么具体要求请说明 建一个excel文件,在这个文件编写主程序,如果要手动输

没有直接的函数,一般用变通的方法,用错误获取 Option Explicit Sub A_num() On Error Resume Next Dim a As Variant, ln As Long 'a = Array(1, 2, 4, 5) a = [{1,3,4;1,3,5}] ln = UBound(a, 2) If Err Then MsgBox "一维数组" Else MsgBox "二维数组" End If End Sub

Sub test()Dim shuzu(1 To 10, 1 To 10) As Stringshuzu(1, 1) = "aa"shuzu(1, 2) = "bb"shuzu(1, 3) = "cc"shuzu(1, 4) = "dd"shuzu(2, 1) = "11"shuzu(2, 2) = "22"shuzu(2, 3) = "33"For i = 1 To 10MsgBox "行为" & i & "的列个数为" & Application.Match("", Application.Index(shuzu, i, 0), 0) - 1NextEnd Sub

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com