java 随机防止重复数据_检查数组的随机值以防止重复

我现在正在尝试编写一个脚本,从一份餐食列表中随机抽取一餐并在日历中输入 . 它产生4周(周日至周六),每周两餐 . 我希望每次从列表中抽出一顿随机餐来检查已经拉过的饭菜,以防止同一餐在一个月内出现两次 . 以下是我写的:

Dim ranDnr As Integer

Dim ranDnr2 As Integer

Dim usdMls(3) As Integer

Dim usdMls2(3) As Integer

Sub GnrtMlsMnthClndr()

Randomize

For i = 0 To 3

For j = 0 To 3

For x = 2 To 17 Step 5

For y = 2 To 17 Step 5

ranDnr = Int(60 * Rnd + 1)

While IsInArray(ByVal ranDnr, ByVal usdMls) = True

ranDnr = Int(60 * Rnd + 1)

Wend

usdMls(i) = ranDnr

Worksheets("Sheet1").Cells(x, 1) = Worksheets("Sheet2").Cells(ranDnr, 1)

ranDnr2 = Int(60 * Rnd + 1)

While IsInArray2(ByVal ranDnr2, ByVal usdMls2) = True

ranDnr2 = Int(60 * Rnd + 1)

Wend

usdMls2(j) = ranDnr2

Worksheets("Sheet1").Cells(x, 9) = Worksheets("Sheet2").Cells(ranDnr2, 1)

Next y

Next x

Next j

Next i

End Sub

Public Function IsInArray(ByVal ranDnr, ByVal usdMls) As Boolean

'Dim i

For i = 0 To 3

If usdMls(i) = ranDnr Then

IsInArray = True

Exit Function

End If

Next i

IsInArray = False

End Function

Public Function IsInArray2(ByVal ranDnr2, ByVal usdMls2) As Boolean

'Dim i

For i = 0 To 3

If usdMls2(i) = ranDnr2 Then

IsInArray2 = True

Exit Function

End If

Next i

IsInArray2 = False

End Function

我对VBA缺乏经验,并且完全不知道为什么这不起作用,因为它对我来说似乎合乎逻辑,并且在运行它时不会产生任何错误 . 可以提供任何可能提供的援助 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值