【发布时间】:2014-07-27 21:28:37
【问题描述】:
我是一个 vba 菜鸟,所以请放轻松。
我想在我的 card_range_string 数组中选择一个随机数组元素(请参阅 random_type,最后一行),但我收到“下标超出范围”错误。有什么问题?
Sub generate_random()
' generates a random card
Dim random_card As Long: random_card = Int(Math.Rnd * 13) + 1
Dim random_type As String
Dim random_symbol As Variant
Dim card_Range_string() As Variant: card_Range_string = Range("A1:A4").Value
Dim card_Range_symbol() As Variant: card_Range_symbol = Range("B1:B4").Value
random_type = card_Range_string(Int(Math.Rnd * 3))
End Sub
【问题讨论】:
-
我解决了。记得数组是二维的,所以我只是错过了拼出第二维。制作:random_type = card_Range_string(int(Math.Rnd*4+1),1) 解决问题
-
发布您自己的答案并接受它是可以接受的。这有助于未来的读者,因为他们可以看到问题已解决。
-
啊谢谢。下次会记住这一点。
-
我通过在 vba 数组的暗淡之后添加一行来避免尺寸错误,通常如下所示:
redim card_Range_string (1 to 4, 1 to 1)。 (来自您的代码示例 A1:A4),因为如果我不这样做,数组无论如何都从 (0,0) 开始。