llgd.net
当前位置:首页 >> vBA 定义动态数组 >>

vBA 定义动态数组

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

在标准模块中:public a() as integer 然后到用的地方:redim a(100,50)

例如某数组名称是a 计算它的长度就是 Ubound(a) + 1,Ubound()函数是用来获取数组中最大上限。例如某数组有5个元素,那么,通过个取得的最大上限就是4,因为vb中的数组是从0开始的,所以在取得这个最大上限之后还需要加上一个1.

需要一个常驻内存的进程来监控函数的莫个变量去触发输出数组。网上找的的代码 运行auto_open, 然后任意单元格输入 =X(10) Dim R As Range Dim dtNext As Date Sub Auto_Open() StartProcess End Sub Sub Auto_Close() StopProcess End Sub Func...

vba返回动态数组中的元素位置,参考实例如下: Sub Macro1() Dim arr, i As Long arr = [{1, 2, 3}] On Error Resume Next i = WorksheetFunction.Match(2, arr) If Err.Number = 0 Then MsgBox "元素2在数组中的位置是:" & i Else MsgBox "数组...

Dim a(5) As Integer'长度为 5 的整型一维数组Dim b(5, 5) As Integer'长度为 5×5 的整型二维数组

试试! Sub test() Dim a() Dim i As Long, j As Long, k As Long For i = 1 To 7 '根据需求修改7的值即可 For j = 1 To 3 k = k + 1 ReDim Preserve a(1 To k) a(k) = j Next j Next iEnd Sub hx95华夏联盟

你第一次重定义的时候,一定要把可变的维数定义在最后一维,比如 ReDim s(1 To 2, 1 To 50) 然后第二次重定义的时候就可以 Redim Preserve s(1 To 2, 1 To j) 强调:重定义动态数组时,要想保持数组中原有的数据,只能修改最后一维的维数!

定义时:dim A() 这就是动态的,在你需要的时候,应该算出是几个,如n redim A(n)

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