VBA中UBound函数问题
Private Function shk(应收, 资金, 应付, biaom)
Dim h As Byte, x As Byte, y As Byte, s%, hr '%声明3个字节变量1个整数变量,还有....,最后一个变量没有声明类型,默认为Variant,这是一个不好的习惯,看下面的赋值可以声明为integer
hr = Array(11, 13, 18, 19)
h = 8
y = 10
'**********************************************写入应付款*******************************
''//*******
With .... End With,一般用于对象层次比较多时,这时不建议使用。
该结构内用到With 后跟的对象时,可以省略,如
s = .Cells(Rows.Count, 3).End(3).Row + 1 等同于
s = Sheets("应付账款").Cells(Rows.Count, 3).End(3).Row + 1
''//
With Sheets("应付账款")
'获收"应付账款"表里现有行数后加1;若等于5,则s=7,它用来指定应付账款存放的开始行(与上面的内容之间空一行)
s = .Cells(Rows.Count, 3).End(3).Row + 1
If s = 5 Then s = s + 2
.Cells(s, 1).Value = 应收(6, 1) '不知道为何先存放了一个应收账款到应付账款内
''//
UBound(hr),是数组的上边界,第一个元素标号默认为0,这里hr有4个元素,
所以UBound(hr)=3
两个For 语句嵌套使用,循环获取取指定范围内的所有单元格内的值,并依次追加到"应付账款"表格内。
''//
For q = 0 To UBound(hr) '外循环,循环hr数组各元素指定的行
'内循环,循环自第2列至22列的内容;外循环每循环1次,内循环都要循环22-2+1次,注意for与while的区别
For x = 2 To 22
.Cells(s, x) = 应付(hr(q), x)
Next
s = s + 1'每取完一行数据,"应付账款"表格内当前行下移一行
Next
End With
ok!
VBA中的UBound
返回4,因为默认下标是从0开始的。相当于A(0 to 4)
UBound语法如下:
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。
UBound(arrayname[, dimension])
arrayname
必需的。数组变量的名称,遵循标准变量命名约定。
dimension
可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2
表示第二维,如此等等。如果省略 dimension,就认为是 1。
对具有下述维数的数组而言,UBound 的返回值见下表:
Dim A(1 To 100, 0 To 3, -3 To 4)
UBound(A, 1) = 100
UBound(A, 2) = 3
UBound(A, 3) = 4
vb中的 UBound的问题
先说多维数组:在一维数组中,我们例如说从桌子左边到右边,每1cm为一个单位,可以有数组:长度(i),这个i从0到120;
在二维数组中,我除了左右,我们有按照前后,每1cm为一个单位就有了数组:桌面(i,j)这个1从0到120,j从0到60
在三维数组中,我们除了前后左右,再加上上下,从下到上也每1cm为一个单位就有了数组:桌子(i,j,k),这里i从0到120,j从0到60,k从0到80
这样桌子的没一个地方我们都可以用数组来指明他。
再说你的这个“维”:
在上面的例子中,左右就是第一维,前后是第二维,上下是第三维。
是按照数组下标的顺序来说的,在最前面的就是第一维。
例如我们已经有了前面说的数组:桌子(0 to 120,0 to 60,0 to 80)
那么,
uBoung(桌子,1)将得到120
uBoung(桌子,2)将得到60
uBoung(桌子,3)将得到80
VB 题中UBound LBound 什么意思
VB中的Ubound和LBound是用来获取指定数组维可用的最大和最小下标值。UBound 函数,返回一个 Long 型数据,其值为指定的数组维可用的最大下标。UBound 函数示例该示例使用 UBound 函数,确定数组的指定维的最大可用下标。Dim UpperDim MyArray(1 To 10, 5 To 15, 10 To 20) '声明数组变量。Dim AnyArray(10)Upper = UBound(MyArray, 1) '返回 10。Upper = UBound(MyArray, 3) '返回 20。Upper = UBound(AnyArray) '返回 10。LBound 函数,返回一个 Long 型数据,其值为指定数组维可用的最小下标。LBound 函数示例该示例使用 LBound 函数来返回数组的指定维数的最小可用下标。可以使用 Option Base 语句取代数组缺省下标值 0。Dim LowerDim MyArray(1 To 10, 5 To 15, 10 To 20) '声明数组变量。Dim AnyArray(10)Lower = Lbound(MyArray, 1) '返回 1。Lower = Lbound(MyArray, 3) '返回 10。Lower = Lbound(AnyArray) '返回 0 或 1,取决于'Option Base 的设置。