明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2726|回复: 6

如何将自定义类型的数组作为参数传递给过程?

[复制链接]
发表于 2004-3-8 21:15:00 | 显示全部楼层 |阅读模式
Type aa
name As String
End Type Sub test()
Dim a() As aa 'dim a()
ReDim a(1)
Call addtype(a, "ok")
End Sub Sub addtype(a, str As String)
Dim i As Integer
ReDim Preserve a(UBound(a) + 1)
With a(UBound(a))
.name = str
End With
End Sub 请看看应该如何实现标题所述功能? 这段代码,我试过了,如果将a()定义为aa就会出错,不定义为aa就可以通过(a.name语句相应调整)
 楼主| 发表于 2004-3-10 20:46:00 | 显示全部楼层
救命啊,就要沉了!!!
发表于 2004-3-10 21:15:00 | 显示全部楼层
看下面主题我的最后复贴 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=17476
 楼主| 发表于 2004-3-10 21:27:00 | 显示全部楼层
莫大,看过了,现在问题是:"如果将a()定义为aa就会出错,不定义为aa就可以通过(a.name语句相应调整)"
发表于 2004-3-10 21:46:00 | 显示全部楼层
我改了,现在可以了 Public Type aa
name As String
End Type Sub test()
Dim a() As aa 'dim a()
ReDim a(1)
addtype a, "ok"
End Sub Sub addtype(a() As aa, str As String)
Dim i As Integer
ReDim Preserve a(UBound(a) + 1)
With a(UBound(a))
.name = str
End With
End Sub
发表于 2004-3-10 22:03:00 | 显示全部楼层
[I]注意a要定义为全局变量或窗体的模块级变量(下面画线的语句)。 [/I] Private Type aa
name As String
firstrow As Integer
lastrow As Integer
End Type
[U]Private a() As aa[/U] Private Sub addtype(str)
Dim k As Integer
k = UBound(a, 1)
ReDim Preserve a(k + 1)
k = UBound(a, 1)
With a(k)
.name = str
.firstrow = a(k - 1).lastrow
.lastrow = .firstrow
End With
Debug.Print k, a(k).name, a(k).firstrow, a(k).lastrow

End Sub
Private Sub Command1_Click()

ReDim a(0)
a(0).firstrow = 2
a(0).lastrow = 2
a(0).name = "ok"
Dim i As Integer

addtype "ok"
End Sub
 楼主| 发表于 2004-3-10 22:06:00 | 显示全部楼层
5楼的方法解决,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 05:27 , Processed in 0.189620 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表