【问题标题】:VBA Random Element from Array , Subscript out of Range error数组中的VBA随机元素,下标超出范围错误
【发布时间】: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) 开始。

标签: vba excel


【解决方案1】:

我解决了。记得数组是二维的,所以我只是错过了拼出第二维。制作:random_type = card_Range_string(int(Math.Rnd*4+1),1) 解决问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2017-06-16
    相关资源
    最近更新 更多