【发布时间】:2017-01-25 15:49:26
【问题描述】:
我正在调用 sub() 但不断收到“未定义用户定义类型”错误。在尝试了将变量声明为数组的不同方法后无法弄清楚。希望有任何指导:
Public Type Whatever
ppp As String
qqq As Long
rrr As Single
End Type
Sub isthisworking()
Dim thisis() As Whatever
Dim i As Long
Dim athing As Long
For i = 0 To 5
With thisis(i)
.ppp = i & "p"
.qqq = i * 2
.rrr = i ^ 3
End With
athing = 20
beingcalled thisis(), athing
End Sub
Public Sub beingcalled(ByRef thisis() As Whatever, athing As Long)
Dim cycles As Long
cycles = UBound(thisis)
For i = 0 To cycles - 1
With thisis(i)
Debug.Print i & ": " & .ppp & "," & .qqq & "," & .rrr
End With
Next
End Sub
【问题讨论】:
-
一旦我正确标注了
thisis,将Next添加到你的for循环中,并将调用beingcalled thisis(), athing更改为beingcalled thisis, athing,它就没有问题了。 -
谢谢@Johncoleman。显然还没有在尺寸标注之上。或者剪切和粘贴技能!
-
什么时候需要实际使用CALL语句?为什么调用函数需要使用 somefunction(var1, var2,....) 但对于 sub 括号被省略?是否需要它们?
-
@user110084 试试下面的代码
标签: arrays vba parameter-passing subroutine custom-data-type