excel - 从整数数组中删除元素

标签 excel vba

我正在尝试使用数组模拟多甲板绘图。发完第一张牌后,如何从牌组数组中删除这个随机数(“p1”),这样我就可以拥有一个包含 51 个元素的数组,而无需选择第一个元素?

到目前为止我就是这样做的

Dim deck(1 To 52) As Variant
Dim p1 As Integer


For i = 1 To 52

    deck(i) = i

Next

p1 = Int((UBound(deck) * Rnd) + 1)

最佳答案

我可以用下面的代码解决它,但我仍然想知道是否有更简单的方法

Sub preflop()

Dim deck() As Integer
Dim p1 As Integer


For i = 1 To 52
    ReDim Preserve deck(1 To i) As Integer
    deck(i) = i
Next

p1 = Int((UBound(deck) * Rnd) + 1)

For i = LBound(deck) To UBound(deck)
    If deck(i) = p1 Then
        For j = i To UBound(deck) - 1
            deck(j) = deck(j + 1)
        Next
    End If
Next

ReDim Preserve deck(1 To UBound(deck) - 1) As Integer


End Sub

关于excel - 从整数数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478317/

相关文章:

excel - 打印时间表 PDF

c# - 使用 Excel-DNA,如何区分 Excel 加载项函数调用中未指定的参数和缺失的参数?

excel - 如何将范围从 Excel 复制到 Outlook,忽略适用过滤器的第一列?

vba - 将vba字符串发送到excel/outlook时如何保留变音符号?

excel - 如何创建函数来接受串联源值 - Excel VBA

javascript - 如何使用 NodeJS 将 2 个 XLSX 文件合并为一个

excel - 使用类模块在类型内输入

vba - 如何检查多个对象是否不是VBA Excel

Excel VBA 将 XML 文件读入字符串用完字符

VBA - 以保留关键字作为名称的类属性