乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 79|回复: 6

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

[复制链接]

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 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语句相应调整)
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-10 20:46:00 | 显示全部楼层
救命啊,就要沉了!!!
回复

使用道具 举报

21

主题

166

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 2004-3-10 21:15:00 | 显示全部楼层
看下面主题我的最后复贴
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-10 21:27:00 | 显示全部楼层
莫大,看过了,现在问题是:"如果将a()定义为aa就会出错,不定义为aa就可以通过(a.name语句相应调整)"
回复

使用道具 举报

12

主题

135

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 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
回复

使用道具 举报

21

主题

166

帖子

7

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
250
发表于 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
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-10 22:06:00 | 显示全部楼层
5楼的方法解决,谢谢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 14:10 , Processed in 0.609282 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表