社区
ASP
帖子详情
請問UBound()怎么用﹖另ReDim 與dim 有什么區別
miss_yu
2003-08-20 03:56:39
請問UBound()怎么用﹖另ReDim 與dim 有什么區別,謝謝
...全文
126
6
打赏
收藏
請問UBound()怎么用﹖另ReDim 與dim 有什么區別
請問UBound()怎么用﹖另ReDim 與dim 有什么區別,謝謝
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
diya
2003-08-20
打赏
举报
回复
ReDim:在使用动态数组时必须随后使用 ReDim 确定维数和每一维的大小。
xiaobaowu
2003-08-20
打赏
举报
回复
UBound 函数 语言参考
--------------------------------------------------------------------------------
描述
返回指定数组维数的最大可用下标。
语法
UBound(arrayname[, dimension])
UBound 函数的语法有以下参数:
参数 描述
arrayname 必选。数组变量名,遵循标准变量命名约定。
dimension 可选。指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1。
说明
UBound 函数与 LBound 函数一起使用,用于确定数组的大小。使用 LBound 函数可以确定数组某一维的下界。
所有维的下界均为 0。对于有这样维数的数组,UBound 函数返回以下结果:
Dim A(100,3,4)
语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
ReDim 语句 语言参考
--------------------------------------------------------------------------------
描述
在过程级中声明动态数组变量并分配或重新分配存储空间。
语法
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
ReDim 语句语法有以下部分:
部分 描述
Preserve 当更改现有数组最后一维的大小时保留数据。
varname 变量名,遵循标准变量命名约定。
subscripts 数组变量的维数,最多可以声明 60 维数组。subscripts 参数语法格式如下:
upper [,upper] . . .
数组的下界总是零。
说明
ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的 Private、Public 或 Dim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。
如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
这个例子说明如何不擦掉该数组中存在的数据,而增加动态数组的终止维数。
ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
--------------------------------------------------------------------------------
小心 如果减小数组的大小,则将丢失被排除的元素中的数据。
--------------------------------------------------------------------------------
变量初始化时,数值变量初始化为 0,字符串变量初始化为零长度字符串 ("")。在使用引用对象的变量前,必须使用 Set 语句将某个现有对象赋予该变量。在进行对象赋值以前,已声明的对象变量有特定值 Nothing。
lions911
2003-08-20
打赏
举报
回复
REDIM就是你定义了一个数组,觉得有问题,就REDIM重新定义一下,我感觉。
hengxin54
2003-08-20
打赏
举报
回复
ubound(array),arry为数组,此函数反回array的数组大小
dim 为定义一个变量
redim为重新定义这个变量,redim一般用于对数组的重新定义。重新定义后会丢失所有数据
可用redim preserv array来改变数组大小而不丢失数据
erase为消毁数组。
chinesun
2003-08-20
打赏
举报
回复
UBound
返回指定数组维数的最大可用下标。
UBound(arrayname[, dimension])
参数
arrayname
必选项。数组变量名,遵循标准变量命名规则。
Dimension
可选项。指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1。
说明
UBound 函数与 LBound 函数一起使用,用于确定数组的大小。使用 LBound 函数可以确定数组某一维的下界。
所有维的下界均为 0。对于有这样维数的数组,UBound 函数返回以下结果:
Dim A(100,3,4)
语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
____________________________________
ReDim 语句
在过程级中声明动态数组变量并分配或重新分配存储空间。
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .
参数
Preserve
当更改现有数组最后一维的大小时保留数据。
varname
变量名,遵循标准变量命名规则。
subscripts
数组变量的维数,最多可以声明 60 维数组。subscripts 参数语法格式如下:
upper [,upper] . . .
数组的下界总是零。
说明
ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的 Private、Public 或 Dim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。
如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。
这个例子说明如何不擦掉该数组中存在的数据,而增加动态数组的终止维数。
ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
警告 如果减小数组的大小,则将丢失被排除的元素中的数据。
变量初始化时,数值变量初始化为 0,字符串变量初始化为零长度字符串 ("")。在使用引用对象的变量前,必须使用 Set 语句将某个现有对象赋予该变量。在进行对象赋值以前,已声明的对象变量有特定值 Nothing。
diya
2003-08-20
打赏
举报
回复
ubound(数组名,数组维数)
例:
dim aa(1 to 100,0 to 3)
ubound(aa,1)-------------->100
ubound(aa,2)-------------->3
excel拆分表格.txt
Sub 拆分()
Dim
sh As Worksheet
Dim
arr As Variant
Dim
brr()
Dim
i, s As Integer arr = Sheets("总表").UsedRange For Each sh In Worksheets
ReDi
m brr(1 To
UBound
(arr), 1 To
UBound
(arr, 2)) n = 0 If sh.Name <> "总表" Then For i = 3 To
UBound
(arr) If arr(i, 1) = sh.Name Then n = n + 1 For s = 1 To
UBound
(arr, 2) brr(n, s) = arr(i, s) Next s End If Next i End If sh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(
UBound
(brr),
UBound
(brr, 2)) = brr Next sh End Sub
VB 数组参数调用实例.rar
VB 6.0 数组参数调用实例:
Dim
A1(), B1(), C1() '声明数组 Private Sub Form_Load()
Dim
i As Integer '给数组赋初值 Show A1 = Array(2, 4, 6, 8, 10) '用Array函数赋值 B1 = Array(1, 3, 5, 7, 9, 11, 13, 15) For i = 0 To
UBound
(A1) Picture1.Print A1(i); '打印数组元素 Next i For i = 0 To
UBound
(B1) Picture2.Print B1(i); '打印数组元素 Next i
ReDi
m C1(
UBound
(A1)
UBound
(B1) 1) '重定新数组个数 End Sub Private Sub Command1_Click() Call Merage(A1(), B1(), C1()) '调用合并过程,三个数组做实参 For i = 0 To
UBound
(C1) Picture3.Print C1(i); '打印数组 If (i 1) Mod 10 = 0 Then Picture3.Print '换行 Next i End Sub
数组相加演示(VB6.0源代码编写)
数组相加演示(VB6.0源代码编写)
Dim
a(), b(), c()
Dim
i As Integer, j As Integer, k As Integer a = Array(1, 2, 3) '如果数组个数有变,可直接在此修改 b = Array(10, 20) '如果数组个数有变,可直接在此修改 '以下代码为通用格式,无论a、b数组如何变化,均会得出数组c的值
ReDi
m c((
UBound
(a) + 1) * (
UBound
(b) + 1) - 1) i = -1 For j = 0 To
UBound
(b) For k = 0 To
UBound
(a) c(i + 1) = b(j) + a(k) i = i + 1 Next Next MsgBox "a(" & Join(a, ",") & ")+b(" & Join(b, ",") & ")=" & vbNewLine _ & "c(" & Join(c, ",") & ")", vbInformation, "数组相加演示"
VBA 数组进阶——进阶即为探寻细节,“实践出真知”。
1、什么是数组 数组是一组数。 数组是一组有序列的数。 数组是一组连续可索引的具有相同内在数据类型的元素所成的集合,在未指定为变体变量情况下。 2、上界、下界和下标 上界:数组某一维可用的最大下标。用
Ubound
函数表示。 下界:数组某一维的最小下标。默认最小下标为0。用Lbound 函数表示。 下标;数组某一维的元素个数。 3、调试数组方法:本地窗口 4、静态数组、动态数组和多维数组 静态数组:在定义数组时就确定维数和上下界的数组。如,
Dim
arrTemp(5) As Integer 动态数组:在定义数组时未确定维数和上下界的数组。如,
Dim
arrTemp() As String 注意,在定义动态数组之后,必须使用
ReDi
m 语句来设置动态数组的维数、上界和下界,为数组重新 分配存储空间。否则,将出现运行错误,提示下标越界。 Sub test()
Dim
arrTemp(5) As Integer Stop End Sub ......
抹灰厚度计算
抹灰厚度计算 Option Explicit
Dim
xlExcel As New Excel.Application
Dim
xlBook As New Excel.Workbook
Dim
xlSheet As New Excel.Worksheet
Dim
iRow As Long, jCol As Long, maxf As Long
Dim
a() As Double
Dim
maxfe As Integer
Dim
maxfg As Integer '
Dim
AppExcel As Object Private Sub isButton1_Click() CommonDialog1.ShowOpen If Right(CommonDialog1.FileName, 3) <> "xls" Then MsgBox ("非xls有效格式文件") Exit Sub End If Text5.Text = CommonDialog1.FileName List1.Clear ProgressBar1.Max = 1 '读取excel On Error Resume Next xlExcel.Workbooks.Open Text5.Text Set xlBook = xlExcel.Workbooks(1) xlBook.Sheets(1).Select maxf = xlExcel.ActiveSheet.UsedRange.Rows.Count
ReDi
m a(maxf) As Double For iRow = 1 To maxf a(iRow) = xlBook.Worksheets(1).Cells(iRow, 1) ProgressBar1.Value = iRow / maxf DoEvents Next xlBook.Close xlExcel.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlExcel = Nothing End Sub Private Sub isButton2_Click() If Text2.Text = "" Then MsgBox ("请输入抹灰设计厚度") Exit Sub End If If Text3.Text = "" Then MsgBox ("请输入实际抹灰厚度超过设计厚度的期望百分比") Exit Sub End If If Text5.Text = "" Then MsgBox ("请指定EXCEL数据路径") Exit Sub End If List1.Clear '排序
Dim
i As Integer
Dim
j As Integer
Dim
temp As Double For i = LBound(a()) To
UBound
(a()) - 1 For j = LBound(a()) To
UBound
(a()) - 1 If a(j) > a(j + 1) Then temp = a(j) a(j) = a(j + 1) a(j + 1) = temp End If Next Next '按照期望百分比分割 maxfe = (1 - Text3.Text / 100) * maxf maxfg = Text3.Text / 100 * maxf '前n个
Dim
ae() As Double
ReDi
m ae(maxfe) As Double '减掉后的前n个
Dim
aej() As Double
ReDi
m aej(maxfe) As Double '后n个
Dim
af() As Double
ReDi
m af(maxfg) As Double '得到前n个 For iRow = 1 To maxfe ae(iRow) = a(iRow) Next '得到容许值
Dim
zzz As Double zzz = ae(maxfe) - Text2.Text Text4.Text = zzz '第一个数组相减
Dim
T As Integer For iRow = 1 To maxfe aej(iRow) = ae(iRow) - zzz '形成正数数组 If aej(iRow) < 0 Then T = iRow End If Next For iRow = 1 To T List1.AddItem (ae(iRow)) Next
Dim
ttt As Double ttt = T / maxf Text1.Text = Format(ttt, "0.000") End Sub Private Sub Text2_keypress(KeyAscii As Integer) If KeyAscii = 46 And Not CBool(InStr(Text2, ".")) Then Exit Sub If KeyAscii = 8 Then Exit Sub If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 If Text2.Text = "0" And Text2.SelStart = 1 And Chr(KeyAscii) <> "." And KeyAscii <> 8 Then KeyAscii = 0 End Sub Private Sub Text3_keypress(KeyAscii As Integer) If KeyAscii = 46 And Not CBool(InStr(Text2, ".")) Then Exit Sub If KeyAscii = 8 Then Exit Sub If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 If Text3.Text = "0" And Text3.SelStart = 1 And Chr(KeyAscii) <> "." And KeyAscii <> 8 Then KeyAscii = 0 End Sub
ASP
28,390
社区成员
357,068
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章